Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Spaltenprüfung

Forumthread: Spaltenprüfung

Spaltenprüfung
01.05.2026 21:40:10
Opalu
Hallo Profis,

leider reichen meine VBA Kenntnisse nicht aus um eine Spaltenprüfung
in zwei Datein zu checken.
Anbei Beispiel

https://www.herber.de/bbs/user/180650.xlsx

Ich schaff es nicht das in einem Commandbutton als Makro zu hinterlegen

jetzt schon Verbeugung und
mfg Opalu
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spaltenprüfung
02.05.2026 12:16:27
Piet
Nachtrag

kleiner Tipp für nächste Beispieldatei hochladen.
Es wäre einfacher gewesen echte Daten in zwei Tabellen einzutragen statt Bilder zu kopieren.

mfg Piet
Anzeige
AW: Spaltenprüfung
02.05.2026 22:08:45
Piet
Hallo

ich habe dir hier mal drei Dateien hochgeladen, mit denen ich ein Code entwickelt habe.
Der Button ist in der xlsm Datei "180650 Spaltenprüfung", die anderen sind xlsx Dateien.
Zum Kopieren müssen die xlsx Dateien geöffnet sein. Sonst klappt es nicht.
Nach dem kopieren schließt das Makro zwei Dateien, "Gaspreise" bleibt zum prüfen offen.
https://www.herber.de/bbs/user/180661.zip

Wenn die Funktion anders sein soll kann man das noch ändern. Ist ein Erstversuch.
PS - In die Zellen G1 + G2 musst du deine Dateinamen angeben! Nicht vergessen!

mfg Piet
Anzeige
AW: Spaltenprüfung
03.05.2026 06:40:41
Opalu
Hallo Piet

leider kann ich Deine ZIP Dateien nicht öffnen

Trotzdem herzlichen Dank
Gruss OPALU
AW: Spaltenprüfung
03.05.2026 12:16:47
Piet
Hallo

kein Problem, dann lade ich dir die xlsm Datei hoch. Das sollte reichen.
Die beiden anderen Dateien ist nur 1 Tabelle für - Gasdaten und Gaspreis.
Das siehst du als Testdateien an den Zellen in G1+G2. Viel Spass beim testen.
Die Daten was du zuletzt kopiert hast stehen nach dem kopieren in der xlsm Datei.
Wenn du die Dateien nicht schließen willst musst du den Befehl mit .Close löschen!

Der Tabellenname in beiden Dateien ist auch "Gasdaten" und "Gaspreis"!
Wenn du bei dir "Tabelle1" stehen hast must du das bitte im Makro ändern!
Ich bin gespannt auf deine Rückmeldung. Wir bleiben am Ball bis es für dich klappt.
PS - den letzten Code zum Dateien Öffnen habe ich ja bei Herber hochgeladen.
https://www.herber.de/bbs/user/180662.xlsm

mfg Piet
Anzeige
AW: Spaltenprüfung
02.05.2026 22:51:48
Piet
Hallo

das ist der Code wenn du beide Dateien automatisch öffnen willst
In Zelle G1+G2 muss dann der komplette Pfad + Dateiname stehen!
Was du zum Schlu Speichern und schliessen willst kann noch eingestellt werden.

mfg Piet

Option Explicit

Dim j As Long, LSp As Long
Dim lz1 As Long



Sub Daten_kopieren()
Dim GD As Workbook 'WB Gasdaten
Dim GP As Workbook 'WB Gaspreis
Dim DSht As Worksheet 'Gasdaten Sheet
Dim PSht As Worksheet 'Gaspreis Sheet
Dim Tb1 As Worksheet 'This Workbbok

Set Tb1 = ThisWorkbook.Sheets("Tabelle1")
Set GP = Workbooks.Open(Filename:=CStr(Tb1.Range("G1")))
Set GD = Workbooks.Open(Filename:=CStr(Tb1.Range("G2")))
Set DSht = GD.Worksheets("Gasdaten") 'Sheets setzen
Set PSht = GP.Worksheets("Gaspreis")
ThisWorkbook.Activate

'LastZell in Daten, LastSpalte in Preis
lz1 = DSht.Range("A1").End(xlDown).Row
LSp = PSht.Cells(1, Columns.Count).End(xlToLeft).Column

'Kopiere Daten in Diese Tabelle A1
DSht.Range("A1:B" & lz1).Copy Tb1.Range("A1")

'Datum in Gaspreis suchen
For j = 2 To LSp
If PSht.Cells(1, j) = DSht.Cells(1, 2) Then Exit For
Next j

If j LSp Then
'vorhandene Daten überschreiben
DSht.Range("B2:B" & lz1).Copy PSht.Cells(2, j)
Else
'neue Daten hinten anhängen
DSht.Range("B1:B" & lz1).Copy PSht.Cells(1, j)
End If
Range("B1").Activate

'Gaspreis aktivieren zum Prüfen
GP.Activate 'Gaspreis Aktivieren
GP.Save 'Gaspreis speichern

'Mappen schließen ???
GD.Close False 'Gasdaten schliessen
ThisWorkbook.Save 'Last Daten speichern
ThisWorkbook.Close 'Makro WB schliessen
End Sub

Anzeige
AW: Spaltenprüfung
03.05.2026 18:55:40
snb
Kann auch mit VBA:
Verwende Arrays; vermeide jede Interaktion mit einem Arbeitsblatt.

Sub M_snb()

With GetObject(Cells(1, 7))
sn = .Sheets("Gasdaten").Cells(1).CurrentRegion
.Close
End With
With GetObject(Cells(2, 7))
sp = .Sheets("Gaspreis").Cells(1).CurrentRegion
.Close
End With

For jj = 2 To UBound(sp, 2)
If sp(1, jj) = sn(1, 2) Then Exit For
Next

For j = 1 To UBound(sn)
sn(j, 2) = sp(j, jj)
Next

Cells(1).Resize(UBound(sn), 2) = sn
End Sub


Anzeige
AW: Spaltenprüfung
04.05.2026 13:24:27
Piet
Hallo snb

ich bewundere deine eleganten Codes, der GetObject Befehl war mir nicht bekannt!
danach bekomme ich Laufzeitfehler: - sn = .Sheets("Gasdaten").Cells(1).CurrentRegion
Ich habe es mit geschlossener und geöffneter Datei versucht, beides Fehler. Woran kann das liegen?

Interessiert mich rein technisch deinen Code ans laufen zu bringen.
Von dir kann man viel lernen.

mfg Piet
Anzeige
AW: Spaltenprüfung
03.05.2026 05:17:45
Opalu
Danke Piet

ich hoffe ich komme damit weiter (konnte nicht schlafen) aber jetzt vielleicht.

Gruss Opalu
AW: Spaltenprüfung
02.05.2026 18:46:07
Opalu
Hallo Piet,

Danke für Deine Hilfe (War eine Zeit auf Achse)

Dein Ansatz gefällt mir gut aber:

Die beiden Datein liegen zwangsläufig auf verschiedenenen Laufwerken.
Und beim einfügen sollen die Wert nur bis zur letzten gefüllten Zeile der Vorspalte übernommen
werden.
(die Dateien sind für den Anhang leider zu groß)

Hättest Du dafür auch eine Lösung ??

ich bin für jede Hilfe dankbar.

demütigen Gruss Opa Lu
Anzeige
AW: Spaltenprüfung
02.05.2026 18:53:28
Eifeljoi 5
Hallo

Zu deiner Aussage die Dateien wären zu, ist Blödsinn, denn es gibt ein zip Programm oder man verkleinert sie auf das wesentliche an Zeilen nicht an Spalten.
Ich denke mit Power Query kannst du auch zum Ziel kommen.
AW: Spaltenprüfung
02.05.2026 19:39:28
Opalu
Hallo Eifeljoi 5,

leider kenn ich Power Qery nicht

Gruss Opalu
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18