Registriert seit: 10.04.2014
Version(en): 2016 + 365
Hi Rainer, (27.12.2014, 15:35)rainer.minnerop schrieb: Noch eine kurze Frage vorab. Wird das als Makro in die Tabelle Filtern eingestetzt, oder als Modul, gültig für alle Tabellen? schau mal, was er schreibt, gleich als ersten Satz: Code: unten ein Beispielcode, der in das Code Modul DieseArbeitsmappe hinein gehört.
Registriert seit: 26.12.2014
Version(en): 2007
Oh ooooh, wer lesen kann, und es dann auch noch tut, ist klar im Vorteil. :30: Danke
Registriert seit: 26.12.2014
Version(en): 2007
WOW! Das ging ja total einfach. Läuft soweit. Herzlichen Dank für diese seeeeehr schnelle und unkomplizierte Hilfe !!!:23: Jetzt habe ich versucht, per "range" die Zellen A4:B10 aus der ersten Tabelle über den abgefragten Werten in die Tabellen zu schreiben, aber dazu bin ich noch zu dumm. Kannst du mir da noch mal helfen?
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Rainer, dann teste diesen Code: Code: Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim lngZ As Long If Sh.Name Like "[A-Z]" Then 'wenn Blattname "A-Z" Application.ScreenUpdating = False Sh.Cells.Clear 'Blatt leeren zum neu Einlesen With Sheets("Geburten") 'In Blatt Geburten die letzte Belegte Zeile in Spalte A feststellen lngZ = .Cells(.Rows.Count, 1).End(xlUp).Row .Range("A4:B10").Copy Sh.Range("A2") End With 'Spezialfilter "Oder" Filterung 'Der Bereich A13:CC bis zur letzten belgten Zelle wird nach Kriterienin A!:C4 in Blatt Filter gefiltert 'und die Filterergebnisse werden in das aktivierte Blatt ab A1 eingetragen With Sheets("Filter") 'Mit Blatt Filter .Range("A2") = Sh.Name & "*" ' in Zelle A2 den Blattnamen und plus "*" als Platzhalter .Range("B3") = Sh.Name & "*" ' in Zelle B3 den Blattnamen und plus "*" als Platzhalter .Range("C4") = Sh.Name & "*" ' in Zelle C4 den Blattnamen und plus "*" als Platzhalter Sheets("Geburten").Range("A13:CC" & lngZ + 1).AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Sheets("Filter").Range("A1:C4"), CopyToRange:=Sh.Range("A10"), Unique:=False End With ' sortieren nach Spalte P With Sh lngZ = .Cells(.Rows.Count, 1).End(xlUp).Row .Range("A13:CC" & lngZ + 1).Sort Key1:=.Range("P13"), Order1:=xlAscending, Header:=xlYes, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal End With Application.ScreenUpdating = True End If End Sub[code]
Gruß Atilla
Registriert seit: 26.12.2014
Version(en): 2007
27.12.2014, 23:21
(Dieser Beitrag wurde zuletzt bearbeitet: 27.12.2014, 23:21 von rainer.minnerop.)
Hi. Meinen herzlichsten Dank an den VBA-Gott. Klappt wie eine 1 ! Hab mal 250 Pseudodatensätze reingemacht, und es sieht alles wunderbar aus. Das wäre mit lauter einzelnen Pivottabellen wahrscheinlich deutlich aufwändiger geworden. Nochmals ganz herzlichen Dank. Und so siehts aus:
Registriert seit: 26.12.2014
Version(en): 2007
HI. Buhuhuhuuuuu. Aus irgendeinem Grunde wird das VBA nicht mehr ausgeführt. Ich habe einige Seiten etwas formatiert, und ich habe in Tabelle Geburten eine Spalte eingefügt. Irgendwas habe ich dabei zerschossen. Jetzt gehe ich ins Bett, gefrustet. :@ Ach so. Ich habe in der Tabelle Geburten A5:B5 den Eintrag gemacht: A5 Anzahl Datensätze B5 =Anzahl(A11:A2555) um die Anzahl der Datensätze auszugeben. Wann die Tabelle aufgehört hat zu arbeiten habe ich nicht mitbekommen. Hab dann die Tabelle geschlossen, ohne zu speichern als ich merkte dass es nicht mehr ging.
Template_Geburten_1_1 - testtabelle.xlsm (Größe: 212,1 KB / Downloads: 9)
Was hab ich falsch gemacht?
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo, Zitat:Ach so. Ich habe in der Tabelle Geburten A5:B5 den Eintrag gemacht: A5 Anzahl Datensätze B5 =Anzahl(A11:A2555) Diese Eintragungen sehe ich in A11:B11 Aber egal was Du in den Tabellen "veranstaltest", Du kannst den Code nicht zerschießen. Das er nicht mehr arbeitet kann daran liegen, dass Du Makros nicht aktiviert hast. Die eingestellte Datei funktioniert jedenfalls.
Gruß Atilla
Registriert seit: 26.12.2014
Version(en): 2007
Moin Moin. Zitat:Aber egal was Du in den Tabellen "veranstaltest", Du kannst den Code nicht zerschießen. Mmmmh, und ich hatte die Hoffnung, dass es daran lag, dass ich eine Spalte eingefügt habe, und dadurch die in der Tabelle einkopierten Spaltenbeschriftungen nicht mehr stimmen, da sie an anderer Stelle sind. Zitat:Das er nicht mehr arbeitet kann daran liegen, dass Du Makros nicht aktiviert hast. Die Tabelle hat aber doch schon funktioniert. Wieso jetzt auf einmal nicht mehr? Wo muss man denn noch Makros aktivieren, außer hier?---->
Registriert seit: 26.12.2014
Version(en): 2007
28.12.2014, 11:38
(Dieser Beitrag wurde zuletzt bearbeitet: 28.12.2014, 11:45 von rainer.minnerop.)
Hi. Hab jetzt gerade noch mal die Spaltenköpfe neu kopiert, und dann die M*, die in Tabelle Filter standen rausgelöscht, danach lief alles wieder. Also Frage für die Zukunft. In den Blätter A-X kann ich solche Sachen wie Gruppierungen, farbliche Formatierungen usw machen, das schadet nicht? In der Tabelle Geburten kann ich keine Spalten einfügen, wenn sich dadurch die Suchspalten verschieben? Also die Spalte R wurde z.b. zu Q.
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Hi Rainer,
auf deinen letzten Beitrag kann ich keine fachliche Antwort anbieten.
Aber mir ist bei dem Screenshot im Beitrag davor aufgefallen, dass du in deinen Einstellungen "Alle Makros aktivieren..." ausgewählt hast. Das würde ich nicht machen. Denn dadurch wird jede Datei, die du dir irgendwoher besorgt hast, ohne Nachfragen auch ausgeführt. Schadcode ist dadurch Tür und Tor geöffnet.
Besser ist es, wenn du zumindest die zweite Option wählst. XL fragt dann danach, ob das Makro wirklich aktiviert werden soll. So hast du immer noch die Möglichkeit, es von vornherein auszuschließen oder dir den Code erst einmal anzusehen, bevor er Schaden anrichten kann.
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
|