Office: (Office 2013) VBA

Helfe beim Thema VBA in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Eine Frage habe ich hier noch. Ich möchte, dass der ganze Mechanismus nur läuft, wenn ein bestimmter Wert existiert. Diesen Wert frage ich in der... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von JFish86, 24. Januar 2015.

  1. VBA


    Eine Frage habe ich hier noch. Ich möchte, dass der ganze Mechanismus nur läuft, wenn ein bestimmter Wert existiert. Diesen Wert frage ich in der Eingabemaske ab - falls das Feld dort leer gelassen wird, dann soll dieser ganze Schreibmechanismus nicht durchgeführt werden. Ich habe es folgendermaßen mit -- If Not WERT Is Nothing Then. Aber damit funktioniert es leider nicht; er schreibt die Zahlen trotzdem ein im Tabellenblatt. Wie könnte ich das einbauen?

    Code:
     
    JFish86, 29. Januar 2015
    #16
  2. Beverly
    Beverly Erfahrener User
    Hi,

    Aber genau das macht der Code doch - er ermittelt immer die 1. Zelle ab Spalte O in der gefundenen Zeile, die tatsächlich leer ist, also auch keine Formel enthält. Beispiel: Zellen O6:Q6 sind bereits mit Werten gefüllt - beim nächsten Durchlauf findet der Code Zelle R6 und trägt dort ein, das ist korrekt. S6 hat eine Formel - der Code findet deshalb im darauffolgenden Durchlauf T6, die keine Formel enthält und noch keinen Eintrag hat, trägt also in die nächste Spalte rechts von der Zelle mit Formel ein. Im Bereich T6:AA6 ist es genau so - dort werden Werte in T6:Z6 eingtragen, dann wird Zelle AA6 mit Formel ausgelassen und die nächsten Einträge beginnen in Zelle AB6.
    Ich verstehe also nicht, was der Code nicht entsprechend deiner Vorgabe macht, immer nur die Zellen auszufüllen, die leer sind.


    VBA grusz.gif
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
    Beverly, 29. Januar 2015
    #17
  3. Ich hatte den Code am Anfang getestet und immer einen einzigen Eintrag pro Durchlauf in die gefundene Zelle geschrieben. Er hat pro Durchlauf in die erste freie Zelle einen Wert geschrieben. Beim nächsten Durchlauf dann in die Zelle rechts davon. Falls diese Zelle "rechts davon" allerdings eine Formel hatte, hat der Code gar nichts ausgeführt - also nicht in die nächste Zelle rechts von der Formel gesprungen und dort den Eintrag gemacht. Das meinte ich.

    Wie du aber oben siehst in dem kopierten Code, schreibe ich immer "um die Formel herum". Die befindet sich in der vierten Zelle rechts von der gefundenen. Und .Range(strZelle).Offset(0, 4) lasse ich ja aus.

    Daher ist der Code so wie er ist ganz wunderbar für mich.


    Weißt du vielleicht noch, wie ich die WENN-Kondition noch reinbringen kann (siehe oben)?
     
    JFish86, 29. Januar 2015
    #18
  4. Beverly
    Beverly Erfahrener User

    VBA

    Hi,

    Dann hast du nicht meinen Code aus meinem Beitrag vom 28.01.2015 19:26 getestet, denn der macht so etwas nicht sondern das, was ich in meinem letzten Beitrag ganz konkret beschrieben habe und deine Anforderungen entsprechend deiner hochgeladenen Arbeitsmappe ausführt!


    Was deine andere Frage betrifft:

    Code:
    VBA grusz.gif
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
    Beverly, 29. Januar 2015
    #19
  5. Das mit den IF funktioniert. Danke!!

    Vielleicht vertue ich mich bei dem anderen Thema auch. Kann gut sein, dass ich da was übersehen hatte. Wie es jetzt ist, funktioniert es jedenfalls *Smilie
     
    JFish86, 29. Januar 2015
    #20
  6. Wie könnte ich denn vorher noch prüfen, ob in der gefundenen Zeile von rngZelle bis zur "letzten" Spalte alle Zellen belegt sind?

    Im Moment sieht der Code so aus:
    Code:
    Was ich also genau prüfen möchte, ist, ob in der Zeile, in der rngZelle liegt, die letzte besetzte Zelle in der gleichen Spalte liegt wie die letzte besetzte Zelle in Zeile 5.

    Ich würde das für die einzelnen Sheets dann jeweils separate vorher prüfen und - sollte die Prüfung positive ausfallen - die Sub verlassen, damit nicht "zu weit" geschrieben wird.

    Vielen lieben Dank für die Hilfe.
     
    JFish86, 5. Februar 2015
    #21
  7. Beverly
    Beverly Erfahrener User
    Meinst du ob alle Zellen belegt sind und keine freie mehr vorhanden ist? Das hatte ich im Code aus meinem Beitrag von 28.01.2015, 19:26 bereits eingebaut:


    Code:
    VBA grusz.gif
     
    Beverly, 5. Februar 2015
    #22
  8. VBA

    Genau die gleiche Funktion.

    Allerdings macht der den Schreibvorgang (der ganze obere Code) für mehrere Tabellenblätter. Und ich will vorher prüfen lassen, ob überall Platz ist. Sollte irgendwo kein Platz sein, dann soll er raus aus der Sub.
    Wenn diese Bedingung in den einzelnen Loops für die versch. Tabellenblätter enthalten ist, dann könnte es sein, dass er ins erste und zweite schreibt und erst beim dritten merkt, dass dort kein Platz mehr ist - sollte das aber der Fall sein, hätte er in gar kein Tabellenblatt schreiben sollen.

    Deswegen die Pfüfung vorher. Ginge das dann so (obwohl es komisch aussieht, weil das Ausführen der Commands nur im ELSE Teil steht):

    Code:
     
    JFish86, 6. Februar 2015
    #23
  9. Beverly
    Beverly Erfahrener User
    Also ich kann in deinem Code nicht erkennen, wo da mehrere Tabellenblätter prüft werden - alles bezieht sich auf Tabelle Worksheets("Growth 2013").


    VBA grusz.gif
     
    Beverly, 6. Februar 2015
    #24
  10. Das war nur ein Ausschnitt. Der ganze Code beschreibt dann noch Growth 2013 - Growth 2017 (also 5 Tabellenblätter). Da habe ich jeweils den Code kopiert und angepasst.

    Das ginge wahrscheinlich etwas eleganter, aber es erfüllt für mich ja seinen Zweck, daher bin ich zufrieden damit.

    Jetzt möchte ich eben noch oben beschriebene Prüfung einbauen, bevor er beginnt in den 5 Tabellenblättern zu schreiben.

    Ich hoffe, das ist verständlich ausgedrückt?
     
    JFish86, 6. Februar 2015
    #25
  11. Beverly
    Beverly Erfahrener User
    Code:
    VBA grusz.gif
     
    Beverly, 6. Februar 2015
    #26
  12. Ok, das probiere ich gleich aus. In der Excel Datei gibt es allerdings noch weitere Worksheets (anderes Format und Inhalt), für die das nicht geprüft warden soll. Müsste ich da die Ansprache in den Anfangszeilen ändern? Kann ich also irgendwie nur die 5 besagten Worksheets direkt ansprechen?

    Danke dir!
     
    JFish86, 6. Februar 2015
    #27
  13. Beverly
    Beverly Erfahrener User

    VBA

    Mit einer Select Case-Anweisung kann man sich auf die gewünschten Tabellen beschränken:

    Code:
    Es geht natürlich auch mit einer If-Anweisung verwenden, aber wenn es mehrere Vergleichswerte (Tabellennamen) sind, ist die Select Case-Anweisung übersichtlicher.


    VBA grusz.gif
     
    Beverly, 6. Februar 2015
    #28
Thema:

VBA

Die Seite wird geladen...
  1. VBA - Similar Threads - VBA

  2. VBA prüfen - eventuell Fehler

    in Microsoft Access Hilfe
    VBA prüfen - eventuell Fehler: Hallo Fachkräfte, hier ein VBA-Modul das einen Fehler enthalten soll. Case 2 wurde in 2022 geändert. In Case 3 , 4 oder ... soll auch noch ein Fehler sein. Wo genau was falsch ist und wie...
  3. VBA: Fehler 0x800a03ec beim Ribbon

    in Microsoft Excel Hilfe
    VBA: Fehler 0x800a03ec beim Ribbon: Hallo, ich habe eine Tabelle, die ich ohne Titelleiste anzeigen lassen möchte. Dazu habe ich mir zwei Makros geschrieben Sub AusBlenden() CommandBars("Worksheet Menu Bar").Enabled = False...
  4. Dateiname der aktuellen Datei als Variable

    in Sonstiges
    Dateiname der aktuellen Datei als Variable: Hallo in die Runde, kann ich unter VBA (Excel/Outlook) den Namen der aktuellen Datei auslesen und in einer Variable weiterverarbeiten? Danke im Voraus, Andreas
  5. Makro um E-Mails zu verschieben

    in Microsoft Outlook Hilfe
    Makro um E-Mails zu verschieben: Ich suche ein Makro das ich auf einem Rechner ausführen lassen kann um gelesene Mails z.B. auf dem Handy in einen bestimmten Ordner zu verschieben um meinen Posteingang "sauber" zu halten....
  6. Access VBA – Prüfen, ob eine PDF bereits geöffnet ist, bevor sie erneut geöffnet wird

    in Microsoft Access Hilfe
    Access VBA – Prüfen, ob eine PDF bereits geöffnet ist, bevor sie erneut geöffnet wird: Beschreibung: Ich arbeite mit Access VBA und habe eine Funktion implementiert, die beim Klick auf einen Button („Unterzeichnet“) einen Bericht als PDF exportiert. Was aktuell funktioniert:...
  7. VBA: Was ist "Tabelle1"?

    in Microsoft Excel Hilfe
    VBA: Was ist "Tabelle1"?: Hallo, ich bin gerade dabei einen VBA-Code für meine Zwecke anzupassen. Leider funktioniert eine der Berechnungen nicht mehr und ich bin nun auf Fehlersuche. Dabei verstehe ich (unter anderem)...
  8. VBA: Form in zwei Modulen verwenden

    in Microsoft Excel Hilfe
    VBA: Form in zwei Modulen verwenden: Hallo zusammen, ich habe ein VBA-Modul, von welchem ich ein Form aufrufe. Dieses Form hat einfach ein paar Buttons, und gibt zurück, ob ein Button gedrückt worden ist. Diese Information wird dann...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden