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

Spalten AA und größer befüllen lassen

Spalten AA und größer befüllen lassen
09.02.2022 11:30:28
Mitsakos
Hallo liebe VBA Anwender,
ich habe folgendes Problem. Über eine Schleife vergleiche ich Daten und möchte dann bei einem Treffer in Tabelle2 einige Spalten befüllen. Diese gehen jedoch über die Spalte Z hinaus sprich, es müssen auch die Spalten AA fortaufend befüllt werden. Ihr findet anbei die Beispielmappe : https://www.herber.de/bbs/user/151012.xlsm
Ich habe folgenden Code im Netz gefunden und etwas an meine Bedürfnisse angepasst. Leider endet die Schleife an Spalte Z, dann wird mit einer Fehlermeldung abgebrochen "Laufzeifehler 1004 Anwendungs oder Objektdefinierter Fehler". Ich vermute, dass die chr Funktion keinen größeren Wert als Z kennt?

Sub SucheNachInhalten()
Dim lngZeile As Long
Dim lngSpalteMax As Long
Dim lngZeileMax As Long
Dim lngSpalte As Long
Dim lngZeileMax2 As Long
Dim VarDat As Variant
Dim i As Integer
Dim sQuellSpalte As String
Dim sZielSpalte As String
Dim lngQuellZeile As Long
Dim lngQuellSpalte As Long
Dim lngZielZeile As Long
Dim lngZielSpalte As Long
With Sheets("Tabelle1")
'Ermittel die letzte beschriebene Zeile in Spalte A "Tabelle1" und speichere den Wert in Variable lngZeileMax
lngZeileMax = .Range("A" & .Rows.Count).End(xlUp).Row
'Ermittel die Anzahl der beschriebenen Spalten in "Tabelle1" und speichere den Wert in Variable lngSpalteMax
lngSpalteMax = .UsedRange.SpecialCells(xlCellTypeLastCell).Column
'Ermittel die letzte beschriebene Zelle in Spalte A "Tabelle2" und speichere den Wert in Variable lngZeileMax2
lngZeileMax2 = Sheets("Tabelle2").Range("A" & .Rows.Count).End(xlUp).Row
'Schleife zum durchsuchen der Zeilen von Zeile 2 beginnend bis zur letzten beschriebenen Zeile in Spalte A
For lngZeile = 2 To lngZeileMax
'Definiere Suchbereich der Schleife
VarDat = Sheets("Tabelle2").Range("A2:A" & lngZeileMax2)
'Pruefe nun Zeile fuer Zeile im definierten Suchbereich VarDat
For i = 1 To UBound(VarDat)
'Wenn der Wert in der Zeile "Tabelle1" = Wert in der Zeile "Tabelle2"
If .Range("A" & lngZeile).Value = VarDat(i, 1) Then
'dann starte neue Schleife und beginne mit Uebertrag der Daten in die Zielzeile und Zielspalte
For lngSpalte = 3 To (lngSpalteMax - 1)
lngQuellZeile = lngZeile
lngQuellSpalte = lngSpalte
lngZielZeile = i + 1
lngZielSpalte = lngQuellSpalte - 7
'Übertrage Daten in die Spalten
sQuellSpalte = Chr(lngQuellSpalte + 70)
sZielSpalte = Chr(lngZielSpalte + 70)
Sheets("Tabelle2").Range(sZielSpalte & lngZielZeile) = .Range(sQuellSpalte & lngQuellZeile)
Next lngSpalte
End If
Next i
Next lngZeile
End With
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten AA und größer befüllen lassen
09.02.2022 12:51:22
Daniel
HI
verwende um Einzelzellen anzusprechen nicht Range("SpaltenbuchstabeZeilennummer") sondern Cells(Zeilennummer, Spaltennummer)
denn bei Cells kannst du auch die Spalte als Zahl angeben und musst nicht in Buchstaben umwandeln.
also statt

Sheets("Tabelle2").Range(sZielSpalte & lngZielZeile) = .Range(sQuellSpalte & lngQuellZeile)
dann

Sheets("Tabelle2").Cells(lngZielZeile, lngZielSpalte) = .Cells(lngQuellZeile, lngQuelleSpalte)
Gruß Daniel
AW: Spalten AA und größer befüllen lassen
09.02.2022 13:33:33
Niko
Hallo Daniel und danke für deinen Hinweis.
Leider brachte dieser keinen Erfolg. Die Fehlermeldung "Laufzeifehler 1004 Anwendungs oder Objektdefinierter Fehler" erscheint nun bereits beim ersten Schleifendurchlauf. Er bricht somit sofort ab ohne einen Eintrag vorzunehmen :(
Gruß
Niko
Anzeige
wir sind immer noch keine Hellseher
09.02.2022 14:18:56
Daniel
was hast du denn programmiert?
wenn du mir nicht zeigst, was du programmiert hast, kann ich dir auch nicht sagen, was du falsch gemacht hast.
hilfreich wäre auch die konkrete Codezeile zu benennen, in welcher der Fehler auftritt.
Auch welche Werte dann in den Variablen stehen, die diese Zeile verwendet, könntest du schon mal prüfen und uns mitteilen.
das alles hilft uns, deinen Fehler schneller zu finden und das sollte auch in deinem Interesse sien.
Gruß Daniel
AW: wir sind immer noch keine Hellseher
09.02.2022 14:23:35
Niko
Hallo Daniel,
ich habe sowohl meinen Quellcode als auch eine Beispieldatei hochgeladen oder kann man weder den Quellcode sehen, noch auf die Beispieldatei zugreifen?
Anzeige
AW: wir sind immer noch keine Hellseher
09.02.2022 14:25:56
peterk
Hallo
Sollte funktionieren

For lngSpalte = 3 To (lngSpalteMax - 1)
lngQuellZeile = lngZeile
lngQuellSpalte = lngSpalte
lngZielZeile = i + 1
lngZielSpalte = lngQuellSpalte
'Übertrage Daten in die Spalten
Sheets("Tabelle2").Cells(lngZielZeile, lngZielSpalte).Value = .Cells(lngQuellZeile, lngQuellSpalte).Value
Next lngSpalte
Peter
AW: wir sind immer noch keine Hellseher
09.02.2022 16:01:21
Niko
Hallo Peter,
vielen Dank. Dieser Ansatz hat mich zum Ziel geführt :)
Auch dir Daniel nochmal vielen Dank.
VG und bleibt gesund
Niko
AW: wir sind immer noch keine Hellseher
09.02.2022 14:34:35
Daniel
du hast den Quellcode doch sicherlich auf meinen Beitrag hin geändert, also solltest du uns auch deinen geänderten Code zeigen.
ich weiß ja nicht, was du gemacht hast, wenn ich in selber ändere, ist es ja möglich, das ich was anderes mache als du
Gruß Daniel
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige