152 Aufrufe
Gefragt in Tabellenkalkulation von
Hi und Servus !

Ich bin nicht gerade der Excel Profi und habe vorhin das erste mal VBA Angewendet was auch gut geklappt hat.

Ich brächte eine Funktion ( wahrscheinlich am besten mit VBA ) wo ich die Inhalte von ca 1000. Tabellenblättern in eine neue Datei oder einfach ein neue Tabellenblatt geschrieben bekomme.

Bedeutet: Inhalt Tabellenblatt 1 Felder Zeile A1 bis Zeile A? (hängt davon ab ob da  Inhalt ist) soll in die neue Datei oder Tabellenblatt geschrieben werden in Spalte A. Spalte B sollte der Name des Tabellenblatt vom Ursprung geschrieben werden.

Kann mir jemand Helfen ?

16 Antworten

0 Punkte
Beantwortet von m-o Profi (15.4k Punkte)
Hallo,

stehen die Werte hinter den Werten in Spalte A oder stehen sie willkürlich irgendwo in Spalte B?

Gruß

M.O.
0 Punkte
Beantwortet von
Die Werte stehe hinter den Werten in Spalte A. Hintergrund: Das ist unsere Inventur, in Spalte A stehen die Artikelnummern und in Spalte B steht die Menge, der Karteireiter ist unser Lagerort wo der Artikel liegt

Und es gibt auch keine Leeren Felder, also es ist immer ein Inhalt drin, auch wenn die Menge Null ist

Carsten
0 Punkte
Beantwortet von

Sorry, muss meine Aussage Korrigieren: 

"Die Werte stehe hinter den Werten in Spalte A. "

Natürlich nicht, Werte stehen in Spalte B

Carsten

0 Punkte
Beantwortet von m-o Profi (15.4k Punkte)

Hallo Carsten,

hier der angepasste Code:

Sub Zusammenfassung()

Dim lngLetzte As Long
Dim lngZeile As Long
Dim lngZaehler As Long
Dim i As Long

'Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False

'Inhalte aus dem Arbeitsblatt Aufgearbeitet löschen
With Worksheets("Aufgearbeitet")
.UsedRange.ClearContents
End With

'Nun jedes Arbeitsblatt in der Mappe durchlaufen
For i = 1 To ThisWorkbook.Worksheets.Count
  'nur Daten aus den Arbeitsblättern auslesen, die nicht gleich Zielarbeitsblatt sind
  If Worksheets(i).Name <> "Aufgearbeitet" Then
    With Worksheets(i)
     'letzte beschriebene Zeile in Spalte A des betreffenden Arbeitsblattes ermitteln
     lngLetzte = .Cells(Rows.Count, 1).End(xlUp).Row
     'nun alle Zeilen durchlaufen und Daten kopieren
      For lngZeile = 1 To lngLetzte
         'nur Werte in Übersicht schreiben
          If .Cells(lngZeile, 1).Value <> "" Then
             'Zähler für Einfügezeile erhöhen
              lngZaehler = lngZaehler + 1
              Worksheets("Aufgearbeitet").Cells(lngZaehler, 1) = .Cells(lngZeile, 1)  'Wert aus Spalte A
              Worksheets("Aufgearbeitet").Cells(lngZaehler, 2) = .Cells(lngZeile, 2)  'Wert aus Spalte B
              Worksheets("Aufgearbeitet").Cells(lngZaehler, 3) = .Name    'Name des Quellarbeitsblattes
          End If
      Next lngZeile
     End With
  End If
Next i

Worksheets("Aufgearbeitet").Activate

'Bildschirmaktualisierung einschalten:
Application.ScreenUpdating = True

End Sub

Gruß

M.O.

0 Punkte
Beantwortet von
Läuft ! Wahnsinn, sehr Geil !

Danke
0 Punkte
Beantwortet von m-o Profi (15.4k Punkte)
Hallo Carsten,

freut mich, dass alles so funktioniert, wie du dir das vorstellst. Und vielen Dank für die Rückmeldung.

Gruß

M.O.
...