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

Nochmal Mail dür dich Thorsten :-)

Nochmal Mail dür dich Thorsten :-)
Ulf
Hallo
ich hoffe, ich erreiche dich über einen erneuten Beitrag nochmals. Ich habe eine dritte Datenquelle eingebaut, um die Daten danach konsolidiert untereinander auflisten zu lassen. Soweit läuft auch alles rund. Nur leider listet er mit mit dem Code, den ich unten angehängt habe, die Werte aus Tabelle 1 und 3 auf. Die Werte aus Tabelle 2 nicht. Ich denke, dass hängt irgendwo bei dem Befehl iEnde +1? Nur wo? Ich bin für Hilfe dankbar, habe schon jede Kombi ausprobiert.
Workbooks(1).Activate

'die angegebenen Zeilen für Tabelle 1 werden ausgewählt, kopiert und in Tabelle 3 eingetragen
Workbooks(2).Sheets("Results").Rows(iAnfang1 & ":" & iEnde1).Copy
Range("A4").Select
ActiveSheet.Paste

'die angegebenen Zeilen für Tabelle 2 werden ausgewählt, kopiert und in Tabelle 3 eingetragen
Workbooks(3).Sheets("Results").Rows(iAnfang2 & ":" & iEnde2).Copy
Range("A" & iEnde1 + 1).Select
ActiveSheet.Paste

'die angegebenen Zeilen für Tabelle 3 werden ausgewählt, kopiert und in Tabelle 3 eingetragen
Workbooks(4).Sheets("Results").Rows(iAnfang3 & ":" & iEnde3).Copy
Range("A" & iEnde2 + 1).Select
ActiveSheet.Paste

Application.CutCopyMode = False
Range("A1").Select
'Tabelle 3, 2 und 1 werden ohne zu speichern wieder geschlossen
Workbooks(4).Close savechanges:=False
Workbooks(3).Close savechanges:=False
Workbooks(2).Close savechanges:=False
Application.ScreenUpdating = True

End Sub
Gruß
Ulf

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Nochmal Mail dür dich Thorsten :-)
08.04.2004 13:30:29
Oberschlumpf
Hi Ulf
Melde mich später, hab im Mom keine Zeit.
Ciao
Thorsten
AW: Nochmal Mail dür dich Thorsten :-)
Oberschlumpf
Hi Ulf...hier bin ich nun :-)
Und hier kommt auch gleich der geänderte VBA-Code :-)
Versuch es mal so:


Private Sub CommandButton1_Click()
    Dim iAnfang1 As Integer, iEnde1 As Integer, iAnfang2 As Integer, iEnde2 As Integer, iAnfang3 As Integer, iEnde3 As Integer
    
    Application.ScreenUpdating = False
    
    'die Start- und Endwerte für Tabelle1, 2 und 3 werden durch Inputbox vom Anwender erwartet
    iAnfang1 = InputBox("Geben Sie bitte für KONTEST1.xls die Startzeile ein.")
    iEnde1 = InputBox("Geben Sie bitte für KONTEST1.xls die Endzeile ein.")
    iAnfang2 = InputBox("Geben Sie bitte für KONTEST2.xls die Startzeile ein.")
    iEnde2 = InputBox("Geben Sie bitte für KONTEST2.xls die Endzeile ein.")
    iAnfang3 = InputBox("Geben Sie bitte für KONTEST3.xls die Startzeile ein.")
    iEnde3 = InputBox("Geben Sie bitte für KONTEST3.xls die Endzeile ein.")
    
    'Tabelle 1 und 2 werden geöffnet
    'Du musst für \\XXX den richtigen Pfad eintragen und für KONTEST1, KONTEST2 und KONTEST3 den jeweils richtigen Dateinamen
    Workbooks.Open "xxx\kontest1.xls"
    Workbooks.Open "xxx\kontest2.xls"
    Workbooks.Open "xxx\kontest3.xls"
    Workbooks(1).Activate
    
    'die angegebenen Zeilen für Tabelle 1 werden ausgewählt, kopiert und in Tabelle 3 eingetragen
    Workbooks(2).Sheets(1).Rows(iAnfang1 & ":" & iEnde1).Copy
    Range("A1").Select
    ActiveSheet.Paste
    
    'die angegebenen Zeilen für Tabelle 2 werden ausgewählt, kopiert und in Tabelle 3 eingetragen
    Workbooks(3).Sheets(1).Rows(iAnfang2 & ":" & iEnde2).Copy
    Range("A" & iEnde1 + 1).Select
    ActiveSheet.Paste
    
    'die angegebenen Zeilen für Tabelle 3 werden ausgewählt, kopiert und in Tabelle 3 eingetragen
    Workbooks(4).Sheets(1).Rows(iAnfang3 & ":" & iEnde3).Copy
    Range("A" & iEnde1 + iEnde2 + 1).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Range("A1").Select
    'Tabelle 2 und 1 werden ohne zu speichern wieder geschlossen
    Workbooks(4).Close savechanges:=False
    Workbooks(3).Close savechanges:=False
    Workbooks(2).Close savechanges:=False
    Application.ScreenUpdating = True
Der Fehlerm den Du suchtest, liegt in diesem Block:
Workbooks(4).Sheets(1).Rows(iAnfang3 & ":" & iEnde3).Copy
Range("A" & iEnde1 + iEnde2 + 1).Select
ActiveSheet.Paste
Na, siehst Du schon die Änderung zu Deinem Code? :-)
Deine Zeile
Range("A" & iEnde2 + 1).Select
bewirkt, dass genau DIE Zelle wieder markiert wird, die schon in dem vorherigen Kopiervorgang die Zielzelle war. Denn Endzeile in 2. Datentabelle bedeutet ja NICHT, dass dies auch die Endzeile in der Zieltabelle ist.
Kann ja auch nicht, da in der Zieltabelle nach erfolgreichem Abschluss immer MEHR Zeilen vorhanden sind, als in einer der ausgewählten Datentabellen.
Warum allerdings bei Deinem Versuch die Zieltabelle geschlossen wird, kann ich nicht nachvollziehen. Bei mir wurden alle Datentabellen geschlossen.
Nun denn, ich hoffe, meine Hilfe nun kommt a) nicht arg zu spät und b) führt auch bei Dir zum Erfolg ;-)
Ciao
Thorsten
Anzeige
AW: Nochmal Mail dür dich Thorsten :-)
Ulf
Hallo Thorsten,
danke für den Hinweis. Ich hatte die Zeile auch schon soweit geändert.
(Range("A" & iEnde2 + 1).Select IN Range("A" & iEnde1 + iEnde2 + 1).Select). Trotzdem ist das noch nicht die Lösung :-(
Ich beschreibe mal, was bei mir passiert:
'die angegebenen Zeilen für Tabelle 1 werden ausgewählt, kopiert und in Tabelle 3 eingetragen
Workbooks(2).Sheets("Results").Rows(iAnfang1 & ":" & iEnde1).Copy
Range("A4").Select
ActiveSheet.Paste
Resultat: Kein Problem; XLS trägt die werte ein
'die angegebenen Zeilen für Tabelle 2 werden ausgewählt, kopiert und in Tabelle 3 eingetragen
Workbooks(3).Sheets("Results").Rows(iAnfang2 & ":" & iEnde2).Copy
Range("A" & iEnde1 + 1).Select
ActiveSheet.Paste
Resultat: Kein Problem. XLS nimmt iEnde (in meinem Fall 6, addiert 1 und schreibt die neuen Werte ab zeile 7)
Und jetzt kommt es :-)
'die angegebenen Zeilen für Tabelle 3 werden ausgewählt, kopiert und in Tabelle 3 eingetragen
Workbooks(4).Sheets("Results").Rows(iAnfang3 & ":" & iEnde3).Copy
Range("A" & iEnde1 + iEnde2 + 1).Select
ActiveSheet.Paste
Resultat: Die Werte werden zwar angezeigt, aber mit drei Leerzeilen dazwischen. Denn bei mir im Test ist aktuell iEnde1 = 6, iEnde2 = 6. Jetzt noch + 1 = 13. Ab dieser Zeile stehen dann die Werte aus Quelle drei, wobei die letzte Reihe von Quelle zwei in Zeile 9 steht. 10,12 und 12 sind dann frei.
Ich kann nicht einfach sagen: iEnde1 + iEnde2 -3, weil das ja von der jeweiligen Endzeile abhängt. Würde ich als iEnde2 100 nehmen, nützen mir die drei weniger auch nicht viel bringen. Wo ist bloß der Haken an der Geschichte? Ich habe schon so ziemlich jede Kombi durch. Noch keine hat einfach alle werte untereinander angezeigt.
Hoffe du verstehst mich und hast noch einen Tipp :-)
Danke und Gruß
Ulf
Anzeige
AW: Nochmal Mail dür dich Thorsten :-)
09.04.2004 07:18:18
Oberschlumpf
Hi Ulf :-)
Tja, so einfach, wie ich dachte, war meine Lösung dann wohl doch nicht :-)
Tausche die Zeilen aus DEINEM Code
'----------Dein Code-------------
'die angegebenen Zeilen für Tabelle 3 werden ausgewählt, kopiert und in Tabelle 3 eingetragen
Workbooks(4).Sheets(1).Rows(iAnfang3 & ":" & iEnde3).Copy
Range("A" & iEnde1 + iEnde2 + 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A1").Select
'---------------------------------------
gegen diese Zeilen aus:
'--------- mein Code -------------------
'gib anstelle von 1 DIE Zeile an, wo der erste Eintrag steht; nun wird die nächste freie Zelle
'GESUCHT und nicht mehr vorgegeben. Voraussetzung: es darf zwischen all den Einträgen KEINE leere Zeile sein
Dim iZeile As Integer
iZeile = 1

Do Until Range("A" & iZeile).Value = ""
iZeile = iZeile + 1
Loop

Workbooks(4).Sheets(1).Rows(iAnfang3 & ":" & iEnde3).Copy
Range("A" & iZeile).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A1").Select
'------------------------------------
So, nun sollte es aber funktionieren, oder? :-)
Viel Glück & schöne Ostern :-)
Ciao
Thorsten
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige