Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1528to1532
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
Inhaltsverzeichnis

Werte aus Spalten anderer Sheets auslesen

Werte aus Spalten anderer Sheets auslesen
22.12.2016 15:52:06
Fred
Hallo Excel Profis,
Ich bin mit der Erstellung meiner Arbeitsmappe kurz vor Ende. Das Problem, welches es nun noch zu lösen gilt;
Ich habe neben 2 Tabellenblättern („Basis“, „Support“) eine sich ändernde Anzahl von weiteren Sheets. Diese Sheets beginnen alle mit „Sp“ gefolgt von einer Zahl und sind im Aufbau des Blattes als auch der Formeln identisch.
Mein Anliegen (wohl nicht über eine Zell-Formel umsetzbar), wohl mit VBA:
Ich brauche in Sheet „Basis“ gewisse Werte aus allen Blättern, die mit „Sp“ beginnen.
Die Anzahl aus den Spalten „W“, =ANZAHL(W:W)
Bedingtes zählen aus den Spalten „W“, =ZÄHLENWENN(W:W;0),
Bedingtes zählen aus den Spalten „W“, =ZÄHLENWENN(Bestand!W:W;1)
Und die Summe aus den Spalten „AA“, =SUMME(AA:AA)
Wenn das über eine Zellformel doch möglich ist, würde wohl ein Beispiel (zB: Anzahl(W:W) reichen, aber wenn das nur über VBA machbar ist, bräuchte ich wohl den kompletten Code.
Kann mir dabei bitte jemand helfen?
Gruß
Fred

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte aus Spalten anderer Sheets auslesen
22.12.2016 16:32:10
Michael
Hi Fred,
wenn Du diese Formeln gleich in jedem "Sp"-Blatt plazierst, z.B. in AC1:AF1 (Deine 3. Angabe bezieht sich nicht auf "Sp"!), vereinfacht sich das Makro:
Sub einlesen()
Dim sh as worksheet
dim i as Long
i=3
for each sh in worksheets
if mid(sh.name,1,2)="Sp" then
with Sheets("Basis")
.range("A" &i).value=sh.name
sh.range("AC1:AF1").copy .range("B" &i)
end with
i=i+1
end if
next
end sub

Es schreibt ab Zeile 3 in Spalte A den Namen des Blatts und ab Spalte B die gewünschten Werte.
Schöne Grüße,
Michael
AW: Werte aus Spalten anderer Sheets auslesen
22.12.2016 17:05:26
Fred
Hallo Michael,
jo, die 3. Angabe ist eine Unaufmerksamkeit meinerseits. Ich hatte ursprünglich noch mehrere Sheets ausser den 2 "Stammblättern"; Basis + Support". -- alles zusammengerafft. Die eine Formel aus meiner Sicherungs-Kopie etc.
Ich werde dein VBA mit entsprechenden Änderungen in den Sheets heute noch einbauen und testen.
Ich melde mich dann nochmals.
Jetzt aber schon danke! für deine Mühe.
bis denne, Michael
Anzeige
sorry, mein Fehler
23.12.2016 15:04:13
Michael
Hi,
sorry, mit .copy kopiert man Zellen samt den dort enthaltenen Formeln (nicht Werten).
Alternativen: .copy und .pastespecial oder, einfacher, einfach die Zeile
sh.range("AC1:AF1").copy .range("B" &i).resize
'ersetzen durch:
.Range("B" & i & ":E" & i).Value = sh.Range("AC1:AF1").Value

Im linken .Range steht dann z.B. bei Zeile 3: "B3:E3", also ein ganz normaler Bezug.
Schöne Grüße,
Michael
AW: Werte aus Spalten anderer Sheets auslesen
22.12.2016 17:47:51
Fred
Hallo Michael,
wird wohl doch nicht so einfach!
Wenn ich dein Makro einsetze, wird wie von dir beschrieben, in Zeile 3 / Spalte A der Namen des Blatts angezeigt. Allerdings in Spalte B werden ausschließlich #BEZUG! angezeigt. Läßt man sich die Bedeutung von der kl. grünen Markierung der Fehlermeldung anzeigen liest man: "Durch das verschieben oder löschen von Zellen ist ein ungültiger Zellbezug entstanden ...."
OK, ich habe in den Blättern x mal ausgeschnitten, eingefügt, Spalten gelöscht etc. aber soll das der Grund sein?
Die Formel in den einzelnen Sheets gibt korrekte Werte zurück. Ich habe mal eine Formel mit einer Zahl überschrienen,- dann wird auch in "Basis" diese korrekt wiedergegeben.
Wie könnte man das richten?
z.B. vor deinem Makro ein anderes setzen, welches die Werte in einen anderen Bereich der Zeile 1 kopiert?
Hättest du eine Lösung, Michael
Gruß
Fred
Anzeige
AW: Werte aus Spalten anderer Sheets auslesen
22.12.2016 18:04:11
Fred
Michael,
ich habe eben dein makro in einer anderen mappe getestet - ohne spalten löschen und bereiche ausschneiden etc.
Sobald das ergebnis einer Formel in Basis übertragen werden soll, funzt es nicht. Bei der "jungfräulichen Mappe" allerdings wird nicht #BEZUG! angezeigt sondern eine 0
Gruß
Fred
Werte aus Spalten anderer Sheets auslesen
22.12.2016 19:34:22
Fred
Hallo Profis,
ich bräuchte eine Formel oder ein VBA, welches mir aus allen Tabellenblättern die mit "SP" beginnen, die Summe bestimmter Zellinhalte zurück gibt,- und zwar in Blatt "Basis"
Ursprünglich war die Anfrage etwas anders, aber als Michael mir das VBA schrieb, änderte ich auch die Tabellenblätter um es einfacher zu machen.
Also, wenn es eine Formel dafür gibt, wie ich aus allen Sheets die mit "Sp" beginnen die Summe einer Zelle aus jedem Blatt feststellt, dann wäre natürlich die Formel-Lösung OK
geht aber wohl nur über VBA.
Also, ich habe nun in jedem "Sp... Sheet" im Bereich AK1:AM1" Werte die ich in der Summe in Tabellenblatt "Basis" dargstellt haben möchte.
Ist dies umsetzbar?
Gruß
Fred
Anzeige
AW: Werte aus Spalten anderer Sheets auslesen
22.12.2016 22:30:52
Werner
Hallo Fred,
wenn ich dich richtig verstanden habe:
Sub einlesen()
Dim sh as Worksheet
Dim i as Long
i=3
For Each sh In Worksheets
If Mid(sh.Name, 1, 2) = "Sp" Then
With Sheets("Basis")
.Range("A" & i).Value = sh.Name
.Range("B" & i) = Application.Sum(sh.Range("AK1:AM1"))
End With
i = i +1
End If
Next
End Sub
Gruß Werner
AW: Werte aus Spalten anderer Sheets auslesen
23.12.2016 08:03:59
Fred
Guten Tag Werner,
danke für deine Mühe, - habe ich wohl jetzt verbockt, weil nicht eindeutig beschrieben.
Also, ich bräuchte die Summe jeder einzelnen Zelle, beginnend bei AK1 bis AM1 eines jeden Blattes, welches mit "Sp" beginnt.
Dein VBA summiert den Bereich eines jeden Blattes, Werner, allerdings funzt es.

.Range("B" & i) = Application.Sum(sh.Range("AK1:AM1"))

Michael hatte mir gestern ebenfalls eine Lösung geschrieben:
Dim sh as worksheet
dim i as Long
i=3
for each sh in worksheets
if mid(sh.name,1,2)="Sp" then
with Sheets("Basis")
.range("A" &i).value=sh.name
sh.range("AK1:AM1").copy .range("B" &i)
end with
i=i+1
end if
next
dies VBA will jede Zelle des Bereiches der in Frage kommenden Blätter summieren, klappt allerdings nur bedingt.
Die Werte in dem Bereich werden durch eine Formel ermittelt und das Ergebnis in Basis ist dann #BEZUG! -- Tausche ich das Formelergebnis gegen einen festen Wert aus, funzt Michaels VBA.
Kannst du dies bitte korrigieren, Werner
Gruß
Fred
Anzeige
AW: Werte aus Spalten anderer Sheets auslesen
23.12.2016 08:20:36
Fred
.... stelle eben noch fest,
Michaels VBA summiert natürlich nicht die Werte jeder einzelnen Zelle des Bereiches aller Blätter mit "Sp", -- sondern kopiert diese in Tabellenblatt "Basis"
Ist aber auch OK. Nur wie geschrieben, es funzt nur bedingt (wenn keine Formel in den genannten Bereichen)
Gruß
Fred
AW: Werte aus Spalten anderer Sheets auslesen
23.12.2016 09:01:47
Fred
.. ich nochmals, Werner :-)
habe mir überlegt, wenn ich dein vba nutze aber die summe jeder einzelnen Zelle der Blätter _ brauche, könnte ich es evt. so drehen, dass anstatt der Bereich

.Range("B" & i) = Application.Sum(sh.Range("AK1:AM1"))
summiert wird, ich es ändere in

.Range("B" & i) = Application.Sum(sh.Range("AK1"))
zum ende des vba mit "call Makro2" ein weiteres vba aufrufe, welches mir z.B. dann

.Range("C" & i) = Application.Sum(sh.Range("AL1"))
eine Spalte daneben ausgibt,- und so weiter, bis ich alle gewünschten Summen in "Basis" habe.
Anzeige
AW: Werte aus anderer Sheets addieren
23.12.2016 09:05:58
Gerd
Hallo Fred!
Ich kann mir kaum vorstellen, dass es nicht per Formel geht, wenn ...
Sub Drei_Summen_aus_Tabellen_Sp_in_Basis()
Dim Wsh As Worksheet
For Each Wsh In ThisWorkbook.Worksheets
If Left$(Wsh.Name, 2) = "Sp" Then
With Sheets("Basis")
.Range("K1").Value = .Range("K1").Value + Wsh.Range("AK1").Value
.Range("L1").Value = .Range("L1").Value + Wsh.Range("AL1").Value
.Range("M1").Value = .Range("M1").Value + Wsh.Range("AM1").Value
End With
End If
Next
End Sub
Gruß Gerd
AW: Werte aus anderer Sheets addieren
23.12.2016 09:34:30
Fred
Jo ! Gerd, das ist es!
mit mehreren Makros dies zu erzielen hätte auch geklappt, - deine Lösung ist natürlich das, was ich in einem VBA wollte.
Danke Gerd !
auch an Michael und Werner, danke!
Ich finde eigentlich alle 3 vba`s interessant.
Die "Schreibweise" von Gerd scheint eine ganz andere zu sein .
Ich wünsch euch eine schöne Weihnachtzeit
Gruß
Fred
Anzeige

330 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige