Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1152to1156
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
Zellen kopieren mit VBA
Sebastian
Hallo zusammen,
zunächst einmal möchte ich dem gesamten Forum ein großes Lob aussprechen. Ich bin neu hier und habe mir schon einiges angesehen und es hat mir schon sehr geholfen! Nun aber finde ich für mein Problem keine Lösung und daher möchte ich euch VBA/Excel-Spezialisten fragen, ob ihr mir helfen könnt.
Folgendes Problem:
Ich habe eine Excel-Arbeitsmappe mit 315 gleich aufgebauten Tabellen bzw. "Formularen". Jedes Blatt hat eine bestimmte Nummer. Innerhalb dieses Formulars gibt es verschiedene Zellen, die ausgewertet werden soll. Z.b. Soll in eine extra Berechnungstabelle jeweils in spalte A der name des jeweiligen Tabellenblattes stehen und in den spalten dahinter die verschiedenen zellen, die ausgewertet werden soll. ich möchte nun aber eine solche verlinkung nicht manuell machen (bei 315 tabellenblättern eine menge arbeit) sondern am besten über VBA oder ein Makro, in dem er mir dies automatisch rüberzieht. Wenn möglich auch noch dann, wenn ein Tabellenblatt hinzukommt oder entfernt wird.
Ich hoffe, ich habe mich einigermaßen verständlich ausgedrückt. Ein Bsp hab ich hier leider nicht, da ich die Tabellen auf der Arbeit habe :-(
Wäre aber super, wenn ihr mir schnellstens helfen könntet!
Vielen Dank vorab und viele Grüße
Sebastian

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zellen kopieren mit VBA
04.05.2010 09:42:02
Sebastian
Hey,
kann mir denn gar keiner helfen :-(
AW: Zellen kopieren mit VBA
04.05.2010 10:44:43
fcs
Hallo Sebastian,
nachfolgend Prozeduren, die du bezüglich Tabellennamen, Zeilennummern und auszuwertender Zellen anpassen muss.
Sie fügen in der Übersicht in Spalte A (1) die Tabellennamen ein und in den Zellen rechts daneben INDIREKT-Formeln zu den Zellen, deren Ergebnisse angezeigt werden sollen. Die Prozeduren in einem allgemeinen Modul der Datei einfügen.
Option Explicit
Public StatusUpdate As Boolean, NumberSheets As Long
Sub UpdateZusammenfassung()
'Infos aus Tabellenblättern zusammenfassen
Dim arrZellen, wks As Worksheet, wksZiel As Worksheet
Dim Zeile1 As Long, Zeile As Long, Spalte As Long, iK As Long
Dim StatusCalc As Long
If StatusUpdate = False Then
StatusUpdate = True 'verhindert rekursive Aufrufe der Prozedur während der Ausführung
If NumberSheets  ThisWorkbook.Sheets.Count Then
'Makrobremsen deaktivieren
With Application
.ScreenUpdating = False
.EnableEvents = False
StatusCalc = .Calculation
.Calculation = xlCalculationManual
End With
'Zieltabelle mit Zusammenfassung
Set wksZiel = Worksheets("Übersicht")
'Array mit den Zellen, die ausgewertet werden sollen, _
Reihenfolge = Reihenfolge bei Ausgabe im Zielblatt
arrZellen = Array("B4", "C4", "H8")
Zeile1 = 5 'Zeile ab der Zusammenfassung eingetragen werden soll
With wksZiel
'Altdaten Löschen
If .Cells(.Rows.Count, 1).End(xlUp).Row >= Zeile1 Then
.Range(.Rows(Zeile1), .Rows(.Cells(.Rows.Count, 1).End(xlUp).Row)).ClearContents
End If
'Tabellenblätter abarbeiten
Zeile = Zeile1
For Each wks In ActiveWorkbook.Worksheets
Select Case wks.Name
Case "Übersicht", "TabelleXYZ"
'Namen der Blätter, die nicht ausgewertet werden sollen
Case Else
'Tabellenname eintragen
Spalte = 1
.Cells(Zeile, Spalte) = wks.Name
'INDIREKT-Formeln eintragen
For iK = LBound(arrZellen) To UBound(arrZellen)
Spalte = Spalte + 1
.Cells(Zeile, Spalte).FormulaR1C1 = "=INDIRECT(""'""&RC1&""'!" _
& arrZellen(iK) & """)"
Next
Zeile = Zeile + 1
End Select
Next
.Calculate
End With
NumberSheets = ThisWorkbook.Sheets.Count
'Makrobremsen zurücksetzen
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = StatusCalc
End With
End If
StatusUpdate = False
End If
End Sub

Für die automatische Anpassung beim Löschen und Einfügen von Blättern muss du im VBA-Editor
unter "DieseArbeitsmappe" einfügen:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Call UpdateZusammenfassung
End Sub
Private Sub Workbook_Open()
NumberSheets = Me.Sheets.Count
End Sub
Unter dem Blatt mit der Übersicht:

Private Sub Worksheet_Calculate()
Call UpdateZusammenfassung
End Sub

Gruß
Franz
Anzeige
AW: Zellen kopieren mit VBA
04.05.2010 11:05:10
Sebastian
hallo Franz,
super, das werde ich dann mal ausprobieren, wenn ich nicht weiterkomme melde ich mich nochmal. aber schonmal vielen, vielen Dank!!!
VG Sebastian

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige