Adres-DB mit Excel
#11
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.
Top
#12
Oh ooooh,

wer lesen kann, und es dann auch noch tut, ist klar im Vorteil. :30:

Danke Wink
Top
#13
WOW!

Das ging ja total einfach. Läuft soweit. Smile 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. Wink Kannst du mir da noch mal helfen?
Top
#14
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
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • rainer.minnerop
Top
#15
Hi.

Meinen herzlichsten Dank an den VBA-Gott. Smile 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:
   
Top
#16
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.

.xlsm   Template_Geburten_1_1 - testtabelle.xlsm (Größe: 212,1 KB / Downloads: 9)
Was hab ich falsch gemacht?
Top
#17
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
Top
#18
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?---->
   
Top
#19
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. Smile


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.
Top
#20
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)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste