VBA Wert in Spalte hinzufügen mit Bedingung

Harry2k

Ensign
Registriert
Jan. 2017
Beiträge
151
Hallo ich suche einen Weg , einen Wert in eine Spalte hinzuzufügen

Es werden 300 .xlsx Dateien in eine Tabelle importiert, bei jeder dieser Dateien gibt es jeweils Kopfdaten
in der ersten Zeile, erste Zelle steht die Kundennummer, die sich natürlich fortlaufend wiederholt. Ich brauche die Kundenummer
in einer Spalte bzw. Zelle neben den schon vorhandenen Tabellenzeilen - wie könnte ich dies per VBA machen, also schreibe die Kundennummer in Spalte F bis die nächste Kundenummer kommt? da die Tabellendaten variabel sind, kann ich nicht alle zb. 11 Zeilen angeben.

Jemand einen Denkanstoß?

z.B.

Kunde-12345
...Tabellendaten (10 Zeilen)
Kunde-12346
...Tabellendaten (10 Zeilen)
Kunde-12347
...Tabellendaten (18 Zeilen)
Kunde -12348
...Tabellendaten (7 Zeilen)

Gruß

Harry2k
 

Anhänge

  • Beispiel.xlsx
    9 KB · Aufrufe: 218
Zuletzt bearbeitet:
Teile sind mir noch unklar ...
Wie bspw. die Quelle aussieht und das Ergebnisse aussehen soll.

Dennoch:
1) Dateiliste eines Ordners: Dir(pfad & "*.xlsx", vbNormal)
2) letzte Position in Tabellenblatt finden: excel-inside.de
3) Verweise auf die Quellzellen, moeglichst als Arrayformel, ins Blatt einfuegen
4) Schritt 3) bis 4) mit naechster Datei wiederholen
5) mit Range..copy und Range.pastespecial die Formeln in Werte umwandeln

So muessen die 300 Dateien nicht geoeffnet werden und durch Arrayformel ist es nur eine Abfrage je Datei.
Wobei es trotz der Masse der Dateien ein paar Sekunden dauern wird.

Um das Ganze noch etwas zu Beschleunigen, am Anfang folgendes ausfuehren:
Code:
Application.ScreenUpdating = false                 ' Bildschirm Aktualisierung deaktivieren
Application.EnableEvents = false                   ' Events deaktivieren
Application.DisplayAlerts = false                  ' Meldungen deaktivieren
Application.Calculation = xlCalculationManual      ' Zellenberechung auf manuell setzen
Und am Ende wieder alles aktiveren:
Code:
Application.ScreenUpdating = True                  ' Bildschirm Aktualisierung aktivieren
Application.EnableEvents = True                    ' Events wieder starten
Application.DisplayAlerts = True                   ' Meldungen wieder anzeigen
Application.Calculation = xlCalculationAutomatic   ' Zellenberechung auf automatik setzen
 
Zuletzt bearbeitet:
Zurück
Oben