Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1792to1796
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

Zelle in bestimmten Abständen prüfen

Zelle in bestimmten Abständen prüfen
13.11.2020 11:50:10
Lukas
Guten Morgen.
Ich sitze seit 2 Tagen an einem Makro und versuche dauernd neue Methoden damit es in der Praxis klappt.
Habe beim Googeln nichts gefunden und der Makro Rekorder kann mir da leider auch nicht weiter helfen.
Ich versuche gerade Makro zu bauen dass mir in dem aktuellem Tabellenblatt jede 10. Zeile prüft, in Spalte C, ob da was drin steht. also (C2,c12,c22,c32,...).
wenn in einer spalte nichts drin stehe sollte, sollen dort die kopierten werte aus einem anderem Datenblatt eingefügt werden.
Sub Import_Bestellformular()
Dim strFile As String
Dim strPath As String
Dim strExt As String
Dim ZWB As Workbook
Set ZWB = ThisWorkbook
strPath = "C:\Users\Lukas\Desktop\Umsetzung\Arbeitsordner\"      'Pfad des Verzeichnisses
strExt = "*.xlsx"                                                               'Dateityp
strFile = Dir(strPath & strExt)
If strPath = "" Then
Exit Sub
Else
Do While Len(strFile) > 0
Workbooks.Open Filename:=strPath & strFile
'----------------------------------------------------------------------------------------------- _
Range(Cells(32, 1), Cells(Range("O32").End(xlDown).Row, 15)).Copy
'----------------------------------------------------------------------------------------------- _
Workbooks(strFile).Close
strFile = Dir()                 ' nächste Datei
Loop
End If
End Sub

kann mir da vielleicht jemand weiter helfen, bzw mein makro mit dieser funktion vervollständigen?
Die Idee dahinter ist dann, dass ich viele Dateien in einem Ordner habe. Per Knopfdruck kann dann die erste Datei geöffnet werden und die werte werden dann in Spalte c2 eingefügt in das aktuelle Workbook.
dann kommt automatisch die nächste Datei aus dem Ordner die geöffnet wird, und die Werte werden wieder kopiert an der gleichen stell und werden dann bei c12 eingefügt.
Und so weiter.... bis alle Dateien in dem ordner durchgearbeitet worden sind.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelle in bestimmten Abständen prüfen
13.11.2020 12:39:23
Lukas

Sub Import_Bestellformular()
Dim strFile As String
Dim strPath As String
Dim strExt As String
Dim ZWB As Workbook
Set ZWB = ThisWorkbook
strPath = "C:\Users\Lukas\Desktop\Umsetzung\Arbeitsordner\"      'Pfad des Verzeichnisses
strExt = "*.xlsx"                                                               'Dateityp
strFile = Dir(strPath & strExt)
If strPath = "" Then
Exit Sub
Else
Do While Len(strFile) > 0
Workbooks.Open Filename:=strPath & strFile
Range(Cells(32, 1), Cells(Range("O32").End(xlDown).Row, 15)).Copy
Dim z As Long
With ZWB.Worksheets("Import Bestellformular")
For z = 2 To 100 Step 10
If ZWB.Worksheets("Import Bestellformular").Cells(z, 3).Value  "" Then
ZWB.Worksheets("Import Bestellformular").Cells(z, 3).PasteSpecial xlPasteValues
End If
Next
End With
Workbooks(strFile).Close
strFile = Dir()                 ' nächste Datei
Loop
End If
End Sub
Ich habe jetzt mir sowas ungefähr gedacht, aber das klappt nicht wirklich. Kann mir bitte jemand helfen diesen Code funktionstüchtig zu gekommen. Vielen Dank schonmal im Vorraus
Anzeige
AW: Zelle in bestimmten Abständen prüfen
13.11.2020 12:44:43
Tobias
Hallo Lukas,
du musst dir ein zweites Workbook erstellen und diesem dann das neu geöffnete Workbook zuweisen.
Dann kannst du es ganz normal ansprechen.

Dim VorlageWB as Workbook
' ... dein Code bis Do While Len(strFile) > 0
' Hier dann beim erstellen des Workbooks diese deiner Variablen zuweisen
Set VorlageWB = Workbooks.Open Filename:=strPath & strFile
'Jetzt kannst du mit
VorlageWB.Worksheets("NameSheet").Range(Cells(32, 1), Cells(Range("O32").End(xlDown).Row, 15)). _
Copy Destination:=ZWB.Worksheet("TabelleZumEinfügen").Range("A1")
' Aus deinem VorlageWB in dein ZielWB kopieren
' ***Restlicher Code*
' Am Ende dann die Variablen wieder freigeben
Set ZWB = Nothing
Set VorlageWB = Nothing

Reicht das als Input?
Schöne Grüße
Tobias
Anzeige
AW: Zelle in bestimmten Abständen prüfen
13.11.2020 15:12:52
Lukas
Dankeschön Tobias für deine schnelle Hilfe.
Das hab ich inzwischen behoben durch deine Hilfe.
Aber mein Grundproblem an dem ich immer noch seit heut morgen sitze, ist lediglich, dass ich eine Schleife brauche die mir jede 10. Zeile in Spalte C durchsucht ob da was drin steht. und bei der ersten leeren Spalte die sie in 10er Sprüngen findet soll sie dann das kopierte einfügen.
Ich hab aber keinen blassen Schimmer wie bzw. wo ich da ansetzen soll oder sonstiges. Im Internet hab ich leider auch nichts gefunden mit dem ich arbeiten könnte.
Hättest du oder jemand anders evtl. eine Lösung für einen VBA Anfänger wie mich?
Anzeige
AW: Zelle in bestimmten Abständen prüfen
13.11.2020 16:11:10
Tobias
Hallo Lukas,
das geht über eine for Schleife

'.... mit oben rein
Dim j as integer
Dim letzteReihe as Integer
'dann nachdem dein Workbook offen ist
'Letzte Reihe in Spalte 3 ermitteln
letzteReihe = ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row
'Von Zeile 2 bis zur Letzten Reihe laufen in 10er Schritten
For j = 2 to letzteReihe Stop 10
if ZWB.Worksheet("TabelleZumEinfügen").Cells(j,3)= "" Then
VorlageWB.Worksheets("NameSheet").Range("MussAngepasstWerden").Copy Destination:=ZWB. _
Worksheet("TabelleZumEinfügen").Cells(j,3)
end if
Next j
Damit solltest du arbeiten können.
Schöne Grüße
Tobias
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige