Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
372to376
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
372to376
372to376
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Eingabe vegleichen und mehrere Zeilen kopieren

Eingabe vegleichen und mehrere Zeilen kopieren
29.01.2004 20:03:01
Uwe
Hallo,
folgendes Problem: Ich habe in einer Excel Datei eine Artikelliste mit Artikelnummern in Spalte P als "Datenbank". Ich habe ein Makro geschrieben das bei Eingabe der Artikelnummer in Spalte P in einer Excel Datei die ganze Zeile mit Formatierung aus der Artikeldatenbank kopiert wird. Soweit so gut. Leider gibt es verschiedene Artikel mit gleichen Artikelnummern (aus nicht näher beschriebenen gutem Grund). Nun soll also bei Eingabe einer Artikelnummer alle Zeilen mit dieser Artikelnummer nacheinander in mein Excel Dokument kopiert werden. Wie mache ich das?
Vielen Dank,
Uwe

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eingabe vegleichen und mehrere Zeilen kopieren
29.01.2004 20:31:14
ChrisL
Hi Uwe
Waer schon nicht schlecht auch das Makro zu posten, aber vielleicht gehts in die folgende Richtung, kann aber genauso gut ganz anders sein...
Dim iZeile As Long
Dim WS1 As Worksheet, WS2 As Worksheet
Set WS1 = Workbooks("Mappe1").Worksheets("Tabelle1")
Set WS2 = Workbooks("Mappe2").Worksheets("Tabelle1")
For iZeile = 1 To WS1.Range("A65536").End(XlUp).Row
If WS1.Cells(iZeile, 1) = Artikelnummer Then
' Kopier, kopier...
End If
Next iZeile

Gruss
Chris
AW: Eingabe vegleichen und mehrere Zeilen kopieren
29.01.2004 21:13:41
Beni
Hallo Uwe,
ich weis nicht wie Deine DB aufgebaut ist, ich gehe mal davon aus, dass Du dich in Tabelle1 befindest und dass die Artikel sich in Tabelle2 befinden und dass die ArtNr sich in beiden Tabellen in SpalteP sind.
Kopiere diesen Code in das Tabellenmodul der Tabelle1
Gruss Beni

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 16 Then Exit Sub
With Sheets(2)
a = 0
For i = 1 To .Cells(65536, 16).End(xlUp).Row
If .Cells(i, 16) = Target Then
s = .Cells(i, 255).End(xlToLeft).Column
r = Cells(65536, 16).End(xlUp).Row + a
.Range(.Cells(i, 1), .Cells(i, s)).Copy Destination:=Cells(r, 1)
a = 1
End If
Next i
End With
End Sub

Anzeige
AW: Eingabe vegleichen und mehrere Zeilen kopieren
29.01.2004 21:39:45
Uwe
SUUPER!! Kann man in das Makro noch einfügen, das die Daten nicht in Tabelle 2 sondern in einer externen Datei (z.B. c:\daten.xls) in Tabelle 1 stehen?
Gruss,
Uwe
AW: Eingabe vegleichen und mehrere Zeilen kopieren
30.01.2004 18:23:51
Beni
Hallo Uwe,
die Datei muss offen sein.
Gruss Beni

Private Sub Worksheet_Change(ByVal Target As Range)
Dim WS2 As Worksheet
Set WS2 = Workbooks("Daten").Worksheets("Tabelle1")
If Target.Column <> 16 Then Exit Sub
With WS2
a = 0
For i = 1 To .Cells(65536, 16).End(xlUp).Row
If .Cells(i, 16) = Target Then
s = .Cells(i, 255).End(xlToLeft).Column
r = Cells(65536, 16).End(xlUp).Row + a
.Range(.Cells(i, 1), .Cells(i, s)).Copy Destination:=Cells(r, 1)
a = 1
End If
Next i
End With
End Sub

Anzeige
AW: Eingabe vegleichen und mehrere Zeilen kopieren
30.01.2004 21:44:27
Uwe
Hallo Beni,
vielen Dank. Nun habe ich nur noch das Problem, das das Makro zwar die Zeilen wunderbar kopiert aber nachfolgende überschreibt. Kann man die Zeilen auch einfügen?
Das wars dann aber auch :-))
Schönes Wochenende,
Uwe
AW: Eingabe vegleichen und mehrere Zeilen kopieren
31.01.2004 11:15:23
Beni
Hallo Uwe,
was meinst Du mit "nachfolgende überschreibt", mit dem Code werden sie nicht überschrieben sondern angefügt.
Gruss Beni
Hallo Beni,
31.01.2004 13:25:52
Uwe
Hallo Beni,
wenn ich in Zeile 3 Eine Nummer eingebe, zu der es mehrere Zeilen gibt werden Eingaben in Zeile 4 .... überschrieben.
Uwe
AW: Hallo Uwe,
31.01.2004 16:01:41
Beni
Hallo Uwe,
das ist richtig, gibt es den, in der Zeile unterhalb Deiner Eingabe vor der Eingabe schon Daten?
Wenn Du den Code ansiest, so ist zu Beginn a = 0, das heist, er sucht mit
r = Cells65536, 16).End(xlUp).Row + a den untersten Eintrag in SpalteP, das ist der Eintrag der Du soeben gemacht hast, die erste gefundene Zeile wird in dieser Zeile eingetragen, dann wird a = 1, das heist, die nächste Zeile wird beschrieben.
Gruss Beni
Anzeige
AW: Hallo Uwe,
05.02.2004 20:57:18
Uwe
Hallo Beni,
lässt sich das ändern, das die übernommenen Zeilen eingefügt werden können, d.h. keine nachfolgende überschrieben wird?
Gruss,
Uwe

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige