Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten vergleichen / Fortsetzung

Forumthread: Daten vergleichen / Fortsetzung

Daten vergleichen / Fortsetzung
14.03.2004 17:13:00
Erich M.
Hallo EXCEL-Freunde,
bin bei der Recherche auf diesen Thread gestossen:
https://www.herber.de/forum/archiv/392to396/t395343.htm
Nun bräuchte ich eine Anpassung des Codes von Beni:

Sub Daten_vergleichen_und_ergänzen()
Sheets(2).Activate
r = Cells(65536, 1).End(xlUp).Row
For i = 1 To r
Wert = Cells(i, 1)
With Sheets(1).Columns(1)
Set c = .Find(Wert, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then Cells(i, 2) = c(1, 2)
End With
Next i
End Sub

Es sollen nicht nur die Daten aus der Spalte 2 übertragen werden,
sondern
a) die Daten der Spalten 2 - 10 und
b) die Daten der Spalten 12,15,18 - 20
Leider waren meine Ideen nicht erfolgreich.
Besten Dank für eine Hilfe!
mfg
Erich
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Doch noch gelöst
14.03.2004 18:01:48
Erich M.

Sub Daten_vergleichen_und_ergänzen()
Dim r As String, i As Integer, wert As String, c As Range, s As Integer
Sheets(2).Activate
r = Cells(65536, 1).End(xlUp).Row
For i = 1 To r
wert = Cells(i, 1)
For s = 2 To 10
With Sheets(1).Columns(1)
Set c = .Find(wert, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then Cells(i, s) = c(1, s)
End With
Next s
Next i
End Sub

Damit werden die Spalten 2 bis 10 übertragen;
nicht zusammenhängende Spalten müssen einzeln eingetragen werden.
mfg
Erich
Anzeige
AW: Doch noch gelöst
14.03.2004 18:11:49
andre
hallo erich,
dein lösungsansatz verbessert / meine antwort ausprogrammiert (der untere teil):


Sub Daten_vergleichen_und_ergänzen()
Sheets(2).Activate
r = Cells(65536, 1).End(xlUp).Row
    For i = 1 To r
      Wert = Cells(i, 1)
      With Sheets(1).Columns(1)
        Set c = .Find(Wert, LookIn:=xlValues, LookAt:=xlWhole)
        If Not Is Nothing Then
          For j = 2 To 20
            If j <> 11 And j <> 13 And j <> 14 And j <> 16 And j <> 17 Then
              Cells(i, j) = c(1, j)
            End If
          Next j
      End With
    Next i
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5

gruss andre
Anzeige
Danke - komfortabel!!
14.03.2004 18:18:08
Erich M.
Hallo andre,
damit komme ich natürlich wesentlich besser klar.
Besten Dank!
mfg
Erich
AW: Daten vergleichen / Fortsetzung
14.03.2004 18:04:02
andre
hallo erich,
im prinzip so:


Sub Daten_vergleichen_und_ergänzen()
Sheets(2).Activate
r = Cells(65536, 1).End(xlUp).Row
For j = 2 To 20
  If j <> 11 And j <> 13 And j <> 14 And j <> 16 And j <> 17 Then
    For i = 1 To r
      Wert = Cells(i, 1)
      With Sheets(1).Columns(1)
        Set c = .Find(Wert, LookIn:=xlValues, LookAt:=xlWhole)
        If Not Is Nothing Then Cells(i, j) = c(1, j)
      End With
    Next i
  End If
Next j
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5

mir ist zwar nicht klar was das bringen soll, denn im code wird bei auffinden von einem wert aus spalte 1 in spalte 2 was oben in die erste zeile geschrieben, dort steht dann das was er zuletzt gefunden hat. mit meiner ergänzung passiert dann dasselbe in den anderen spalten, wobei immer wieder in der spalte 1 gesucht wird. kann man sich eigentlich sparen:


If Not Is Nothing Then
Cells(i, 2) = c(1, 2)
Cells(i, 3) = c(1, 3) ' oder auch c(1, 2) ??
'.... hier der rest oder eine schleife
' was bedeutet eigentlich c(1,2) usw. hast du heir ein array?
End If

     Code eingefügt mit Syntaxhighlighter 2.5

gruss andre
Anzeige
AW: Daten vergleichen / Fortsetzung
14.03.2004 18:06:33
andre
... die anmerkung mit dem array ist quatsch, muss mal meine brille putzen ;-)
gruss andre
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige