Excel/VBA (Kopieren, Einfügen, Löschen und Autofill)?

... komplette Frage anzeigen

1 Antwort

sollen die Werte der gleichen Zeile in gleicher Reihenfolge übergeben werden?

Und sind die Formeln immer dieselben und ändern sich nicht von Zeile zu Zeile?

Wenn 2x ja, dann einfach in Import A2 = Quelle!A2 , formatiert mit unterdrückter Null (Zellformat Zahlen, Bendef, Standard;-Standard;;@

Die Null (3.Abschnitt) wird nicht gezeigt, Zahlen und Text schon. Für die Formel in B2 kleidest Du die gleiche Formel wie Quelle!B2 ein in ein

=Wenn(istleer(Quelle!B2);"";Formel in Quelle!B2).

Das kannst Du für tausende von Zeilen runterkopieren, solang Du erwartest, dass was kommt. Wenn Du irgendwo noch anzeigst, wieviele auftreten, kannst du auch noch einen Warnhinweis einfügen:

=Wenn(Anzahl2(Quelle!A:A)>[eingefügte Formel-Zeilen];"Formeln erweitern!";"i.O.")

Für ein Makro kommen diese Ausdrücke infrage (exemplarisch für Spalte B, Zeile 1:999):

Dim C, i As integer

For each C in Worksheets("Quelle").Range(B2:B999)

if Worksheets("Quelle").Cells(i + 1, 2).Hasformula then Worksheets("import").Cells(i + 1, 2).formulalocal = Worksheets("Quelle").Cells(i+1, 2).formulalocal

next 'C ist eine Variable, die die EinzelZellen des Bereichs bezeichnet

zwischen then und Folgendem KEINEN Zeilenumbruch setzen!, ist einzeilige Variante ohne Elseif, Sonst und Endif, sie springt bei "keine Formel" einfach zum nächsten i.

Hab ich jetzt zwar nicht ausprobiert, funktioniert aber m.Erinnerung nach. Sollte was nicht gehen, melde Dich in dieser AW (sonst sehe ich das nicht)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Iamiam
19.05.2017, 19:59

habe ich vergessen: obige Methode funktioniert nur, wenn keine externen Blatt- oder Dateibezüge in der Formel auftauchen: die würden einfach beibehalten, nicht relativ verändert. Wäre aber auch bei der Alternative:

Worksheets("Quelle").Range(i + 1 , 2).copy Destination:=Zielebenso

nicht anders. (Die Alternative würde die Formate mitkopieren und einfügen)

0

Was möchtest Du wissen?