Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1528to1532
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-Hilfe

VBA-Hilfe
20.12.2016 08:55:55
Robert
Hallo Zusammen,
ich brauch erneut Hilfe.
Ich nutze folgenden Code zum Befüllen einer Tabelle mit Werten aus einem anderen Dokument.
Private Sub CommandButton1_Click()
On Error GoTo Fehler
Dim WB1, WB2, ZielTB, TB1, TB2, ZielRNG As Range
Dim Pfad As String, KW As Integer, Datei As String, Ext As String
Dim LR As Long, LR2 As Long, i As Integer
Set WB1 = ActiveWorkbook
Set ZielTB = WB1.Sheets("Import")
' anpassen***
Set ZielRNG = ZielTB.Range("L3") ' *** geändert ***
Ext = ".xlsx" ' Ende anpassen***
Pfad = Sheets("Stammdaten").Range("B3").Value
KW = WorksheetFunction.WeekNum(Date, 11) - 1
KW = InputBox("Eingabe Kalenderwoche", "Verzeichnisauswahl", KW)
For i = 1 To 1
Datei = Pfad & "\KW " & KW & "\Doublecheck"
Workbooks.Open Filename:=Datei
Set WB2 = ActiveWorkbook
Set TB1 = WB2.Sheets("Quality + Pick & Pack")
Set TB2 = WB2.Sheets("Quality + Pick & Pack")
LR = ZielTB.Cells(ZielTB.Rows.Count, "A").End(xlUp).Row + 1 'erste Freie Zeile Spalte A
LR2 = TB1.Cells(TB1.Rows.Count, "F").End(xlUp).Row 'letzte Zeile Spalte A
TB1.Range(TB1.Cells(2, 1), TB1.Cells(LR2, 1)).Copy ZielTB.Cells(LR, 1)
TB1.Range(TB1.Cells(2, 6), TB1.Cells(LR2, 6)).Copy ZielTB.Cells(LR, 6) ' *** neu: F ***
'TB2.Range("L2:L6").Copy ZielRNG ' !!!wird immer wieder überschrieben
ZielRNG.Resize(5).Value = TB2.Range("L2:L6").Value  ' *** von WOHER? ***
' so wird der Zielbereich von mal zu mal
' um 2 Spalten versetzt:
Set ZielRNG = ZielRNG.Offset(, 2) ' *** geändert ***
WB2.Close savechanges:=False
Next
Err.Clear
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
End Sub

Zu meinem Problem:
Beim einmaligen Befüllen klappt soweit alles. Ich möchte aber das Makro so haben das beim erneuten Ausführen die Daten in die erste freie Zeile unten angefügt werden. Leider orientiert sich das Makro dabei aber an der ersten freien Zelle in Spalte A. Wenn Spalte F länger ist überschreibt es die bereits eingefügten Werte ab der letzten freien Zelle in Spalte A.
Was muss ich ändern damit die Spalten unabhängig von einander Befüllt werden?
Danke schonmal und Gruß
Robert

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Hilfe
20.12.2016 09:05:45
guenni

LR = ZielTB.usedrange.row + ZielTB.usedrange.rows.count  'erste unbenutzte Zeile 
Gibt wohl Fälle in denenn der usedrange noch leere Zeilen enthält, darum wird er nicht gerne verwendet.
Gruß,
Günther
AW: VBA-Hilfe
20.12.2016 09:24:37
Robert
Hallo Günther,
danke für deine Antwort.
Leider wird jetzt immer die Tabelle in die erste ungenutzte Zelle eingefügt. Soll heißen auch wenn die Zellen davor leer sind befüllt das Makro ab der ersten leeren Zelle die vorher nicht schoneinmal befüllt war. Umgehen kann ich es nur wenn ich die Spalten davor komplett lösche, dann werden aber auch die Formeln in den Zellen daneben gelöscht weshalb es so für mich nicht funktioniert.
Hast du eine Idee was ich ändern könnte damit es funktioniert?
Gruß
Robert
Anzeige
AW: VBA-Hilfe
20.12.2016 10:02:20
guenni
Zellen, Zeilen, Spalten löschen - ich bin verwirrt!!
Das ist wohl so ein Fall - usedrange kann irgendwie nur wachsen, nicht schrumpfen
wenn's nur um die Spalten A und F geht, kannst Du ja für beide Spalten die letzte Zeile mit .end(xlup) bestimmen und das max() der beiden Zeilen weiterverwenden.
Gruß,
Günther
AW: VBA-Hilfe
20.12.2016 10:20:50
Robert
:-)
Ich bin gut im Kopieren und leicht Abändern, zu mehr reicht es leider nicht. Kannst du mir vielleicht eine entsprechende Zeile schreiben?
Wenn nötig könnte ich auch eine Beispieldatei erstellen.
AW: VBA-Hilfe
20.12.2016 10:29:17
Robert
Ah habs doch selber hinbekommen, danke!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige