Anzeige
Archiv - Navigation
1720to1724
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

Per Array Spalten finden und kopieren

Per Array Spalten finden und kopieren
31.10.2019 13:31:56
Anne
Hallo ihr Lieben,
mein folgender Code funktioniert fast einwandfrei, auch dank dieses Forums. Wäre da nicht ein Problem, was mich schon total verrückt macht. Per Array suche ich nach definierten Spaltenüberschriften in "Quelltabelle", welche nicht nebeneinander angeordnet sind. Wenn diese gefunden wurden, soll der Inhalt unter der Spaltenüberschrift in "Zieltabelle" kopiert werden. Das geht solange bis der komplette Array abgearbeitet ist.
Dummerweise gibt es 4 Spaltenüberschriften, die in "Zieltabelle" nicht befüllt werden. Ich habe überall die korrekte/ identische Schreibweise geprüft, ich suche nur nach Inhalten und keinen Formatierungen etc. Ich habe einfach keine Ahnung, wieso es nicht funktioniert.
Diese Begriffe werden zwar gefunden, aber nicht kopiert in "Zieltabelle": "verbrauchsstelleAnschriftPlz", "verbrauchsstelleAnschriftOrt", "verbrauchsstelleKontaktPerson" und "verbrauchsstelleObjektStrasse". Wieso nicht? :-(
Option Explicit
Public Sub Werte_eintragen()
Application.ScreenUpdating = False
Dim wsSource As Worksheet
Dim wsDestination As Worksheet
Dim rZelle As Range, rZiel As Range
Dim aUeberschr As Variant
Dim iIndx As Integer
Dim lZeile As Long
Dim i As Integer
Dim AnzahlZeilen As Integer
Dim A As Long
aUeberschr = Array("zählerNummer", "zählpunktNummer", "geraeteartText", "herstellerText", _
"brennerartText", "geraetetypbezeichnung", "verbrauchsstelleAnwohner", _
"verbrauchsstelleAnschriftStrasse", "verbrauchsstelleAnschriftHausnummer", _
"verbrauchsstelleAnschriftPlz", "verbrauchsstelleAnschriftOrt", _
"verbrauchsstelleKontaktPerson", "verbrauchsstelleObjektStrasse", _
"verbrauchsstelleObjektHausnummer", "verbrauchsstelleObjektOrt", "status")
'Das sind die zu prüfenden Spaltenüberschriften
Set wsSource = Worksheets("Quelltabelle")    'das Quell-Tabellenblatt
Set wsDestination = Worksheets("Geräte")     'das Ziel-Tabellenblatt
wsDestination.Columns.Hidden = False
i = 4
Application.EnableEvents = False
For iIndx = 0 To UBound(aUeberschr)  'Array wird Schritt für Schritt durchlaufen
Set rZelle = wsSource.Rows(1).Find(aUeberschr(iIndx), LookAt:=xlWhole, LookIn:=xlValues)
    'rZelle soll in "Quelltabelle" ab Zeile 1 die jeweilige Überschrift aus dem definierten
'Array finden
If Not rZelle Is Nothing Then
'rZelle hat eine Überschrift aus dem Array in "Quelltabelle" gefunden
A = wsSource.Rows(1).Find(aUeberschr(iIndx), LookAt:=xlWhole, _
LookIn:=xlValues).Column
Set rZiel = wsDestination.Rows(4).Find(aUeberschr(iIndx), LookAt:=xlWhole, _
LookIn:=xlValues)
 'rZiel soll nun in "NA-Geräte" auch nach den im Array definierten
'Überschriften suchen
If Not rZiel Is Nothing Then   'rZiel hat eine Übereinstimmung gefunden
AnzahlZeilen = wsSource.Cells(Rows.Count, A).End(xlUp).Row
 'Gibt letzte beschriebene Zeile in Spalte "Spaltenüberschrift" aus
wsSource.Range(rZelle.Rows(2), rZelle.Rows(AnzahlZeilen)).Copy
 'rZelle soll die Spalte mit gefundene Überschrift aus "Quelltabelle"
'ab Zeile 2 bis zum letzten Wert in dieser Spalte kopieren
lZeile = wsDestination.Cells(Rows.Count, i).End(xlUp).Row + 1
'Sucht erste leere Zeile ab Spalte i bzw. ab Spalte D
wsDestination.Range(Cells(lZeile, i), rZiel.End(xlDown)).PasteSpecial _
xlPasteValues
i = i + 1
End If
End If
Next iIndx 'Nimm nun die nächste Spaltenüberschrift
Application.Goto Reference:=Worksheets("NA-Geräte").Range("D1"), Scroll:=True
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Ich wäre über Hilfe wirklich, wirklich dankbar!
Gruß,
Anne

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

Betreff
Datum
Anwender
Anzeige
AW: Per Array Spalten finden und kopieren
31.10.2019 14:09:13
EtoPHG
Hallo Anne,
...mal ein Schuss ins Blaue:
Ersetze die Ausdrücke

LookAt:=xlWhole
durch

LookAt:=xlPart

Gruess Hansueli
AW: Per Array Spalten finden und kopieren
04.11.2019 13:40:13
Anne
Hallo Hansueli,
erst einmal Entschuldigung, dass ich mich erst jetzt auf Deinen Vorschlag melde. Habe ihn sogleich umgesetzt und leider festgestellt, dass es nicht das gewünschte Ergebnis geliefert hat. Es bleiben weiterhin die 4 genannten Begriffe ungefüllt.
Ich bin nun nochmal mit F8 die Schritte durchgegangen. Komischerweise taucht nun ein Laufzeitfehler "Methode 'Range' Objekt '_Worksheet' fehlgeschlagen" in folgender Zeile auf:
wsDestination.Range(Cells(lZeile, i), rZiel.End(xlDown)).PasteSpecial xlPasteValues
Blöderweise ist mir nun noch ein weiteres Problem aufgefallen. Ab dem zweiten Durchlauf wird immer die letzte befüllte Zeile überschrieben. Eigentlich soll immer die erste freie Zeile gefüllt werden.
Ich glaube, ich sehe den Wald vor lauter Bäumen nicht mehr. :-(
Über weitere Hilfe und Vorschläge würde ich mich riesig freuen!
Grüße,
Anne
Anzeige
AW: Per Array Spalten finden und kopieren
04.11.2019 16:00:15
Anne
Mein zweites Problem konnte ich nun lösen. Hier gab es nur einen Fehler im Code. Der Code zum Einfügen in die erste freie Zeile sieht nun so aus:
wsDestination.Cells(lZeile, lSpalte).PasteSpecial xlPasteValues
Allerdings habe ich immer noch die Problematik, dass die fett makierten Begriffe aus meinem Array nicht mit Inhalt befüllt werden.
aUeberschr = Array("zählerNummer", "zählpunktNummer", "geraeteartText",
"herstellerText", "brennerartText", "geraetetypbezeichnung",
"verbrauchsstelleAnwohner", "verbrauchsstelleAnschriftStrasse", " _
verbrauchsstelleAnschriftHausnummer", "verbrauchsstelleAnschriftPlz",
"verbrauchsstelleAnschriftOrt", "verbrauchsstelleKontaktPerson",
"verbrauchsstelleObjektStrasse", "verbrauchsstelleObjektHausnummer",
"verbrauchsstelleObjektOrt", "status")
Vielleicht weiß ja noch jemand Rat?
VG,
Anne
Anzeige
Ohne Beispielmappe kann man nicht helfen! (owT)
05.11.2019 13:44:30
EtoPHG

AW: Ohne Beispielmappe kann man nicht helfen! (owT)
05.11.2019 15:09:17
Anne
Hallo Hansueli,
ich hatte gerade die Datei als Muster nachgebaut, um sie hier hochzuladen. Und auf einmal hat alles funktioniert. Hatte daher die kompletten Tabellen in einem neuen Dokument nachgebaut und auch da hat alles funktioniert. Keine Fehlermeldungen etc. mehr!
Meine Vermutung ist, dass mit der Firmenvorlage der Excel-Datei etwas nicht gestimmt hat. Hatte nun die Windows "Vorlage" verwendet.
Jedenfalls danke! Ohne deine Nachricht hätte ich das gar nicht ausprobiert.
Schönen Nachmittag!
VG,
Anne

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige