Dateiübergreifendes kopieren

Bild

Betrifft: Dateiübergreifendes kopieren
von: Tom
Geschrieben am: 29.09.2003 16:12:51

Hi,
ich habe mich mit meinem Problem schon einmal an die Experten in diesem Forum gewandt. Leider ohne hilfreiche Antwort. Wahrscheinlich hab ich mich unverständlich ausgedrückt. Also, neuer Versuch:
In einer Datei (list.xls; sheet:Artikel) sind in Spalte "A" 5-stellige und 9-stellige Werte untereinander eingetragen. Die 5-stelligen möchte ich nun beim Klick auf einen Button in eine andere Datei kopieren (übersicht.xls; sheet:übersicht). Die 9-stelligen müssten irgendwie mit einer if-Abfrage o.ä. außen vor gelassen werden. Die Daten stehen also in 'list.xls' ab Zelle A8 abwärts und sollen in 'übersicht.xls' ab A10 abwärts eingetragen werden.
Hoffe auf eure Fachkenntnis, da ich selbst (fast) kein VBA kann.
Tom

Bild


Betrifft: AW: Dateiübergreifendes kopieren
von: Nike
Geschrieben am: 29.09.2003 16:46:10

Hi,
einfach mal diesen Code in ein Modul in die Mappe list.xls einfügen
und ausprobieren...
Also, übersicht.xls und anschließend list.xls öffnen,
Tastenkombination Alt F11 drücken
dann über das Menü Einfügen/Modul ein neues Modul
einfügen und dann diesen Code dort einfügen,
dann mit Alt Q den Editor verlassen und über Alt F8
die Prozedur aufrufen und ausführen lassen...



Sub Fuenfer_Sort()
Dim lngQZeil As Long
Dim lngZZeil As Long
Dim wksQ As Worksheet
Dim wksZ As Worksheet
Set wksQ = ActiveWorkbook.Sheets("Artikel")
Set wksZ = Workbooks("übersicht.xls").Worksheets("übersicht")
lngZeil = 8
lngQZeil = 10
Do
    If Len(wksQ.Cells(lngZeil, 1)) = 5 Then
        wksQ.Cells(lngQZeil, 1).Copy wksZ.Cells(lngZZeil, 1)
        lngZZeil = lngZZeil + 1
    End If
Loop Until wksQ.Cells(lngZeil, 1) = ""
End Sub


Bye

Nike


Bild


Betrifft: AW: Dateiübergreifendes kopieren
von: Tom
Geschrieben am: 29.09.2003 16:53:24

Hi,
habs ausprobiert, es kommt aber ein Fehler ("Anwendungs- oder Objektdefinierter Fehler"). Was bedeutet das?

Sub Fuenfer_Sort()
Dim lngQZeil As Long
Dim lngZZeil As Long
Dim wksQ As Worksheet
Dim wksZ As Worksheet
Set wksQ = ActiveWorkbook.Sheets("Ettlin Verkaufsartikel")
Set wksZ = Workbooks("Spiel-Ett.xls").Worksheets("übersicht")
lngZeil = 8
lngQZeil = 10
Do
    If Len(wksQ.Cells(lngZeil, 1)) = 5 Then
        wksQ.Cells(lngQZeil, 1).Copy wksZ.Cells(lngZZeil, 1) 'Hier kommt der Fehler!!!
        lngZZeil = lngZZeil + 1
    End If
Loop Until wksQ.Cells(lngZeil, 1) = ""
End Sub


Tom


Bild


Betrifft: AW: Dateiübergreifendes kopieren
von: Nike
Geschrieben am: 30.09.2003 10:06:05

Hi,

da fehlte ein z!


Sub Fuenfer_Sort()
Dim lngQZeil As Long
Dim lngZZeil As Long
Dim wksQ As Worksheet
Dim wksZ As Worksheet
Set wksQ = ActiveWorkbook.Sheets("Ettlin Verkaufsartikel")
Set wksZ = Workbooks("Spiel-Ett.xls").Worksheets("übersicht")
lngZZeil = 8
lngQZeil = 10
Do
    If Len(wksQ.Cells(lngZeil, 1)) = 5 Then
        wksQ.Cells(lngQZeil, 1).Copy wksZ.Cells(lngZZeil, 1) 'Hier kommt der Fehler!!!
        lngZZeil = lngZZeil + 1
    End If
Loop Until wksQ.Cells(lngZeil, 1) = ""
End Sub


bye

Nike

P.S. Hab ich jetzt ein Ettlin Spielzeug gewonnen? ;-)
Was bauen die denn überhaupt?


Bild


Betrifft: AW: Dateiübergreifendes kopieren
von: Tom
Geschrieben am: 30.09.2003 13:46:59

Hi,
habs heut morgen selbst gemerkt, dass da wohl ein Z zuviel oder zuwenig ist. Leider hats trotzdem nicht funktioniert. Hab dann selber n bissl rumgebastelt. Jetzt kommt zwar kein Fehler aber es macht auch nix. Läuft auch nur sehr kurz. Sieht so aus als ob die Schleife gleich abbricht. Zelle A7 ist übrigens leer, aber die Schleife geht doch erst ab A8 los, oder hab ich das falsch verstanden?


Sub Fuenfer_Sort()
Dim lngQZeil As Long
Dim lngZeil As Long
Dim wksQ As Worksheet
Dim wksZ As Worksheet
Set wksQ = ActiveWorkbook.Sheets("Ettlin Verkaufsartikel")
Set wksZ = Workbooks("Spiel-Ett.xls").Worksheets("Übersicht")
lngZeil = 10    'hab die beiden vertauscht, Ziel ist 10 Quell ist 8
lngQZeil = 8
Do
    lngQZeil = lngQZeil + 1   'lngQZeil muss sich doch auch erhöhen, oder?
    If Len(wksQ.Cells(lngZeil, 1)) = 5 Then
        wksQ.Cells(lngQZeil, 1).Copy wksZ.Cells(lngZeil, 1)
        lngZeil = lngZeil + 1
    End If
    
Loop Until wksQ.Cells(lngQZeil, 1) = ""  'hier hat ein Q gefehlt
End Sub


Vielleicht findest du den Fehler. Schonmal vielen Dank für die Mühe.
Tom


Bild


Betrifft: AW: Dateiübergreifendes kopieren
von: Nike
Geschrieben am: 30.09.2003 14:04:57

Hi,
ich hab vergessen lngQzeil auch hochzuzählen ;-)
Is schon tricky so ohne Tests...
Also, dann wohl eher so:


Sub Fuenfer_Sort()
Dim lngQZeil As Long
Dim lngLZeil As Long
Dim lngZZeil As Long
Dim wksQ As Worksheet
Dim wksZ As Worksheet
Set wksQ = ActiveWorkbook.Sheets(4)
Set wksZ = Workbooks("Test.xls").Worksheets(1)
lngZZeil = 8
lngQZeil = 10
lngLZeil = wksQ.Cells(wksQ.Rows.Count, 1).End(xlUp).Row
Do
    If Len(wksQ.Cells(lngZeil, 1)) = 5 Then
        wksQ.Cells(lngQZeil, 1).Copy wksZ.Cells(lngZZeil, 1)
        lngZZeil = lngZZeil + 1
    End If
    lngQZeil = lngQZeil + 1
Loop Until lngQZeil = lngLZeil
End Sub


Bye

Nike


Bild


Betrifft: Merci!!!
von: Tom
Geschrieben am: 30.09.2003 15:43:42

Jetzt klappt das so wie ich mir das vorstelle!!! Vielen Dank für die Mühen!
Tom
PS: Ettlin produziert Stoffe (Baumwolle...).


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Dateiübergreifendes kopieren"