Clever-Excel-Forum

Normale Version: Makro für automatische Aktualisierung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
[attachment=24700]

Hallo zusammen,

für eine Datei möchte ich ein Makro erstellen, das mir die automatische Aktualisierung ermöglicht.
Im ersten Schritt soll eine Plausibilisierung erfolgen, bei der über die ANZAHL2 Formel die Anzahl der Stellen im Bericht mit der in der Basisdatei abgleicht. 
Falls diese übereinstimmt, soll das Makro sich ganz automatisch aktualisieren und keine Meldung kommen, falls aber nicht, soll eine Messagebox erscheinen, die dem User den Hinweis gibt: "Achtung, neue Stelle hinzugekommen. Bitte Händisch aktualisieren!" und das Makro soll sofort über einen Beenden- oder OK- Button direkt beendet werden können.
Leider habe ich keine Erfahrung mit Messageboxen bisher machen können, kann mit jemand ein mögliches Beispiel zeigen?
Ich habe euch hierfür eine entsprechende Beispieldatei angehängt. 

Auch eine Frage, die ich habe: wenn man einen Autofilter auf eine Datenreihe setzt und nach gewissen Kriterien filtert (vgl. auch hier die Bsp.- Datei), wie kann man im Makro festlegen, dass der S-Verweis nur in de ersten aktiv gefilterten Zelle ausformuliert wird und die Formel auf alle anderen gefilterten Zellen kopiert wird?

Über Vorschläge würde ich mich sehr freuen. 
Vielen Dank euch!
Hi TBird63,

grundsätzlich wird Dein Vorhaben technisch kein Problem darstellen.
Mir stellt sich beim lesen die Frage, ob Du jemanden suchst der

a) das Makro für dich erstellt
b) dir Unterstützung bei den bereits bekannten Funktionen/Anweisungen gibt
c) dir Unterstützung beim Einstig in VBA gibt
Moin,

warum willst du einen SVERWEIS() unbedingt per Makro abbilden? Wär das nicht so einfacher?
Arbeitsblatt mit dem Namen 'Tabelle1'
ABC
19Hier sollen nur die auf ja gefilterten Objekte mit dem S-Verweis befüllt werden
20
21Nameja/neinSVERWEIS
22Aja1
23Bja2
24Cnein
25Dja4
26Enein
27Fja6
28Gja7
29Hnein

ZelleFormel
C22=WENN(B22="ja";SVERWEIS(A22;$E$1:$F$9;2;FALSCH);"")
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Hi zusammen, 
danke euch für eure Antworten schonmal.
Es wäre gut wenn mir jemand einen Lösungsansatz oder eine Bsp., wie man das technisch lösen kann hat.
Ich weiß, dass man das ganze auch für das Bsp. anders darstellen kann, allerdings hatte ich diese Datei nur Quick and Dirty zum rumtüfteln erstellt. 
Bei der Filterung wird nach mehreren Kriterien gefiltert, und es soll dann nur diese Auswahl mit dem Verweis gefüllt werden, da war meine Bsp. Datei vllt. etwas zu flach aufgebaut...
Diese Teilschritte werden in ein größeres Projekt von mir eingebunden und so losgelöst wie im Bsp. kann man es natürlich auch einfacher lösen.
Liebe Grüsse,
TBird63
Hi,

Zitat:Es wäre gut wenn mir jemand einen Lösungsansatz oder eine Bsp., wie man das technisch lösen kann hat.
Heißt das, du hast meinen Vorschlag nicht gelesen, oder passt er dir nicht?


Zitat:da war meine Bsp. Datei vllt. etwas zu flach aufgebaut...

ich zitiere mal hieraus (https://www.clever-excel-forum.de/Thread...ng-stellen)
Zitat:Wenn in der Datei sensible, interne oder personenbezogene Daten enthalten sind, dann können diese ja anonymisiert werden. Deine Beispieltabelle sollte vom Aufbau her deinem Original absolut gleichen. Alle Formeln müssen ebenfalls drin sein.

Es müssen auch nicht die kompletten Daten sein, es genügen ein paar relevante komplett ausgefüllte Zeilen (10-20). Sehr wünschenswert wäre auch eine Darstellung, welches Ergebnis wo stehen soll.
Hallo,

Zitat:Diese Teilschritte werden in ein größeres Projekt von mir eingebunden und so losgelöst wie im Bsp. kann man es natürlich auch einfacher lösen.

... mit diesen Nicht-Info's wirst Du wohl schwerlich jemanden finden, der Dir eine Lösung programmiert.
Hallöchen,

ich will mal auf Deine Fragen eingehen.

Wenn Du die beiden Datenreihen mit ANZAHL2 irgendwo geprüft hast kannst Du die Inhalte der Zellen vergleichen

If Range("C1").Value <> Range("D1").Value then MsgBox "Datenreihen unterschiedlich lang"

Oder willst Du die Anzahl im Makro feststellen?


Eine Formel kannst Du z.B. kopieren und bei einer gefilterten Tabelle in die sichtbaren Zellen eintragen. Im Prinzip so:
(Formel zuvor in B1 eintragen)

Sub Makro1()
Range("B1").Copy
Range("B2:B6").SpecialCells(xlCellTypeVisible).PasteSpecial
End Sub