Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1640to1644
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

vba formatierte Zeilen einfügen falls Bedingung

vba formatierte Zeilen einfügen falls Bedingung
28.08.2018 17:50:49
Rami
Hallo an alle,
ich bin noch ziemlich neu in vba und habe nach etlichen Fehlversuchen und Recherchen entschlossen, die Frage hier mal zu stellen:
Ich habe eine Spalte (A16 bis A31) und füge in diesen leeren Zellen nun Daten einer anderen Excel Datei X (B19 bis B34) ein.
Es soll aber möglich sein, dass man bei der EDatei X nun Zeilen einfügen darf (quasi B35 usw.). Wenn also mehr Zeilen existieren als die Hauptdatei nun zu Verfügung hat soll einfach eine Zeile hinzugefügt werden, allerdings soll sie die selbe Formatierung haben wie die Zeile von A31 usw.
Ich habe bisher dies:
Set ext_wb = Workbooks.Open(ThisWorkbook.Path ...)
Dim a, b As Integer
a = 16
b = 19
Do While ext_wb.Sheets(1).Cells(b, 2) ""
If (ThisWorkbook.Sheets(1).Cells(a, 1).Address = "lastGewerk") Then
ThisWorkbook.Sheets(1).Cells(a, 1).Insert (xlShiftDown)
ThisWorkbook.Sheets(1).Cells(a, 1) = ext_wb.Sheets(1).Cells(b, 2).Value
a = a + 1
b = b + 1
Else
ThisWorkbook.Sheets(1).Cells(a, 1) = ext_wb.Sheets(1).Cells(b, 2).Value
a = a + 1
b = b + 1
End If
Loop
es funktioniert allerdings nicht, er fügt hier keine Zeilen ein.
PS: "lastGewerk" ist ein definierter Name der die Zelle A32 zugewiesen bekommen hat damit ich erkenne, wann ich die Zeile einfügen soll.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: vba formatierte Zeilen einfügen falls Bedingung
28.08.2018 21:03:14
AlterDresdner
Hallo Rami,
ThisWorkbook.Sheets(1).Cells(a, 1).Address liefert den Zellbezug, also z.B. $A$17.
Deinen Zweck würde (ungetestet) erfüllen
If (ThisWorkbook.Sheets(1).Cells(a, 1).Address = _
Right(Names("lastGewerk"), Len(Names("lastGewerk")) - _
InStrRev(Names("lastGewerk"), "!"))) Then Stop
Gruß der AlteDresdner
AW: vba formatierte Zeilen einfügen falls Bedingung
28.08.2018 21:56:56
fcs
Hallo Ramu Abou,
Zelle.Address gibt als Wert die Zelladresse in der Form "$A$32" zurück, nicht den Namen der der Zelle zugewiesen ist.
Hier ist es einfacher, den Zeilen-Zähler a mit der Zeile der Zelle mit dem Namen "lastGewerk" zu vergleichen.
evtl. macht es auch Sinn, eine komplette Leerzeile einzufügen, statt nur die Zellen in Spalte A nach unten zu verschieben.
Gruß
Franz
Sub aaaTest()
Dim ext_wb As Workbook
Set ext_wb = Workbooks.Open(ThisWorkbook.Path & "\Test.xlsx", ReadOnly:=True)
Dim a, b As Integer
a = 16
b = 19
Do While ext_wb.Sheets(1).Cells(b, 2)  ""
If a = ThisWorkbook.Sheets(1).Range("lastGewerk").Row Then
ThisWorkbook.Sheets(1).Cells(a, 1).Insert (xlShiftDown)
'evtl. ganze Zeile einfügen
'            ThisWorkbook.Sheets(1).Cells(a, 1).EntireRow.Insert (xlShiftDown)
ThisWorkbook.Sheets(1).Cells(a, 1) = ext_wb.Sheets(1).Cells(b, 2).Value
a = a + 1
b = b + 1
Else
ThisWorkbook.Sheets(1).Cells(a, 1) = ext_wb.Sheets(1).Cells(b, 2).Value
a = a + 1
b = b + 1
End If
Loop
ext_wb.Close
End Sub

Anzeige
AW: vba formatierte Zeilen einfügen falls Bedingung
28.08.2018 22:19:51
Sandra
Hallo Rami Abou
Wenn ich mir Ihren Programmcode anschaue, dann wird die Do-Schleife niemals eine Zeile einfügen, weil diese beim Vorliegen einer leeren Zelle bendet wird. Dann macht diese gar keinen Sinn mehr, weil die Zelle ohnehin leer ist.
Die Formatierung können Sie einfach übernehmen, in dem Sie alle vorgenommenen Formatierungen aus der vorherigen Zeile auf die nächste übernehmen. Relativ einfach und unkompliziert ist die nachfolgende Variante, weil hier einfach alle möglichen Formatiertungen übernommen werden und keine direkte Einzelzuordnung stattfindet.
Range( ausgangszelle einfügen ).Copy
Range( Zielzelle einfügen ).PasteSpecial xlPasteFormats
Application.CutCopyMode = False
Vielleicht helfen Ihnen diese Angaben weiter.
Gruß Sandra
Anzeige

326 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige