6.1k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Leute,

kann mir jemand hierbei bitte helfen.
Das ist mein Makro, die läuft soweit so gut. Über einen Botton in meiner Exceltabelle bringe ich die Marko zum laufen. Nun möchte ich wenn ich den Botton betätige das mein Marko folgendes tut:

1.entweder alle bestehen Zelleninhalte löscht und dann einfach alle neu hinein kopiert plus dem neuen Tabellenblatt
oder
2. um ein neues Tabellenblatt erweitert.

Momentan führt das Makro folgendes aus, nach dem ich den Bottum betätig habe kopiert er alle bestehenden Tabellenblätter mit dem Namen ABT und zusätzlich das neue Tabellenblatt.
Beispiel: Ich habe 5 Tabellenblätter, alle Tabellenblätter heissen ABT 1; ABT2; ABT3 usw.
Diese sind bereits per Marko im Tabellenblatt Archiv abgespeichert. Nun kommt ein 6 Tabellenbalt dazu Namens ABT 6. Betätige ich jetzt den Bottom dann werden alle 5 Tabellenblätter erneut kopiert und zustätlich das neue 6 Tabellenblatt. Wenn jedes Tabellenblatt jeweils 10 Einträge besitzt, dann sollte im Tabellenblatt Archiv normalerweise 50 Zellen + 10 neue Einträge sein.
Die Realität sieht aber so aus... 110 Zelleneinträge. Also die 50 bereitsvorhandenen +50 erneut die gleichen Einträge +die 10 neuen.

Hier ist die Makro:

Sub DATENBANK1SAFinale()
Dim ws As Worksheet

Application.ScreenUpdating = False

Bereich = "A1:X" & Cells(Rows.Count, 1).End(xlUp).Row
Set Quelltab = ActiveWorkbook.Worksheets("Archiv")
Quelltab.Range(Bereich).ClearContents

For Each ws In ActiveWorkbook.Worksheets


If Left(ws.Name, 3) = "ABT" Then

With Worksheets(ws.Name)
.Range("A1:X" & .Cells(Rows.Count, 1).End(xlUp).Row).Copy
End With

With Worksheets("Archiv")
.Range("A" & .Cells(Rows.Count, 1).End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
End With

End If

Next ws

Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

34 Antworten

0 Punkte
Beantwortet von
Hallo Mo,

ok ich werde das mal ändern. Danke für den Tipp.
Die einzelen Exceldateien habe ich in einen Ordner abgespeichert, dieser nennt sich Artikel.
Darin sind die Exceldateien
Artikelnummer 123.xls
Artikelnummer 555.xls
Artikelnummer 887.xls
Artikelnummer 456.xls usw. abgespeichert.

In diesen Dateien gibt es ein Tabellenblatt welches sich ART Beschreibung nennt. In der Exceldatei Datenbank welche nicht im Ordner Artikel abgespeicheiert ist sondern im Ordner Folder abgespeichert ist, gibt es das Tabellenblatt Userguide.

In Spalte H6:H16 sind durch die voherige Makro von dir, immer in 10ner schritten die Artikelnummern aus dem Tabellenblatt Source in die Exceldatei Datenbank hinein kopiert worden und durch erneutest abspielen dieser Marko konnte 10 weitere Artikelnummern eingelesen werden.

In der Exceldatei Datenbank ist ein weiteres Tabellenblatt welches sich Archiv nennt.
In diesem Archiv sind alle gesammelten Artikelbeschreibungen entahlten.

Nun habe ich per Formel einen verweiss auf die Artikelnummern in H6:H16 so das in I6:I16 die dazu gehörigen Beschreibungen auftauchen.

Und jetzt will ich mit der Makro an der wir gerade arbeiten während die Exceldatei Datenbank noch offen (immer offen) ist, da alle Befehle und Buttoms und informationsausgaben im Tabellenblatt Userguide sich befinden, die Exceldateien (Artikelnummer 123.xls
Artikelnummer 555.xls
Artikelnummer 887.xls
Artikelnummer 456.xls usw.) aus dem Ordner Artikel wahlweise öffnen können und die Inhalte aus dem Userguide I6:I16 kopieren und diese in das Tabellenbaltt ART Beschreibung der Exceldatei z.B. Artiklenummer 555.xls in die Spalte M einfügefügen können.

In Spalte M sind jetzt also die ersten 10 beschreibungen enthalten.
Nun ist mir bekannt, dass in der Exceldatei Datenbank im Tabellenblatt Source 100 Artikelnummern auf mich warten. Die ersten 10 habe ich schon per makro aus dem Tabellenblatt Source in das Tabellenblatt Userguide in Spalte H6:H16 eingelesen und per Formel in I6:I16 die dazu gehörigen Beschreibungen.

Jetzt kommen die nächsten 10 in die Spalte Spalte H6:H16 dann die dazu gehörigen Beschreibungen in I6:I16
und diese Beschreibungen möchte ich wieder per Makro kopieren und in das Tabellenbaltt ART Beschreibung der Exceldatei Artiklenummer 555.xls in Spalte M11:M20 usw einfügen bis alle 100 dir sind.

Nächster Tag und das selbe mit z.B der Exceldatei Artikelnummer 887.xls usw.

Also Mo nicht falsch verstehen das ich es noch mal aufgeschrieben habe aber ich dachte mir, dass es besser sei wenn ich versuche es noch mal anders und verständlicher zu beschreiben.
Du hast bis her sehr gut geholfen. Dafür nochmals vielen Dank.

Gruß Flo
0 Punkte
Beantwortet von
Hey MO,

kannst du mir hierbei helfen?

Mit deiner Makro werdem die 10 Dateninhalte aus I6:I16 Userguide leider nur in die letzte Zeile hinein kopiert. Dabei sollte es ab M1 oder besser noch ab M3 anfangen. Und hast du ne Idee nach dem ich die ersten 10 Dateninhalte kopiet habe wie es dann möglich wäre die nächsten 10 Dateninhalte in das Tabellenblatt ART Beschreibung der Exceldatei Artikelnummer 123.xls hineinzu kopieren ohne wieder in die Inputbox den namen der Exceldatei erneut eintippen zu müssen. Dieser aufruf sollte nur einmal passieren.
Es soll quasi in das gerade geöffnente wokrsheet der Exceldatei Artikelnummer 123.xls kopiert werden.
So wie es jetzt ist muss ich jedesmal den namen Artikelnummer 123 eingeben.
Das ich die Auswahl möglichkeit habe ist schon gut.
Das soll auch beibehalten werden.

Vielleicht wäre auch ne idee das das marko ab einer zahl von 100 nachfragt " soll weiterhin in diese gerade durch die inputbox geöffnente Datei hineinkopiert werden Yes? No?
Bei Yes geht es ganz normal weiter und bei No spirngt er weider zurück so das man in die Inputbox die Datei wieder auswählen muss.

Aufjeden fall sollte es so möglich sein, dass nach erneuten aktivierung dieser Makro durch einen Buttonknopf das man nicht erneut die Exceldatei aufrufen muss um die 10 weiteren Dateninhalte einzufügen. Sonst muss man ja schon bei 200 Artikelbeschreibungen 20 mal die Exceldatei Artikelnummer 123.xls eintippen.
Es ist schon gut wie du das davor für mich gelöst hast, danke dir noch mal dafür.


Gruß Flo
0 Punkte
Beantwortet von
.... aber zu nächst einmal ist es wichtig das es nicht immer in die letzte Zeile kopiert wird, sondern von M3 ab an.

danke dir!

Gruß Flo
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Florian,

ich weiß nicht mehr, was du eigentlich willst und eigentlich habe ich keine Lust mehr, dir hier noch zu helfen..

Das letzte Makro kopiert immer 10 Sätze und fügt es in der ausgewählten Datei im in Spalte M nach der letzten beschriebenen Zeile ein (weil du das so wolltest).
Den Dateinamen musst du beim ersten Mal eingeben. Wird das Makro wiederholt ausgeführt - ohne dass die Datei geschlossen wird - wird der letzte Dateinamen in der Inputbox vorgeschlagen.

Gruß

M.O.
...