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 - Ausblenden aller Tabellenblätter außer X

    in Microsoft Excel Hilfe
    VBA - Ausblenden aller Tabellenblätter außer X: Guten Morgen, ich bin ziemlicher VBA Neuling und habe aktuell Probleme mit einer Datei, die ich entwickelt habe. Zu der Datei: Es handelt sich um Daten, auf die lediglich ein bestimmter...
  3. Kamera in Excel einbinden und per vba Fotos erstellen

    in Microsoft Excel Hilfe
    Kamera in Excel einbinden und per vba Fotos erstellen: Kamera in Excel einbinden Hallo, ich suche einen Code für eine UserForm, mit der ich die integrierte Kamera des WinPC in der UserForm anzeigen lassen kann und davon ein Bild sichern kann.
  4. Liste aller Comboboxen im Sheet

    in Microsoft Excel Hilfe
    Liste aller Comboboxen im Sheet: Hallo allerseits, Ich möchte alle Comboboxen eines Worksheets mit VBA auslesen und finde nicht den Namen der Liste in den Sheet-Eigenschaften, in der die Comboboxen gespeichert sind. Wer weiß, wo...
  5. Pivot Tabelle: Quelle per VBA verändern

    in Microsoft Excel Hilfe
    Pivot Tabelle: Quelle per VBA verändern: Hi all, gibt es eine Möglichkeit, wie ich die Quelle einer Pivot Tabelle mit einem Klick aktualisieren kann? 1) Beispiel Quelle: [Datum_Dateiname.xlsx]Tabelle1!$A:$AA 2) Beispiel wie es je nach...
  6. Auswertung aus mehreren Registern erstellen (nur die Gelbmarkierten oder mit Datum von akt. Woche)

    in Microsoft Excel Hilfe
    Auswertung aus mehreren Registern erstellen (nur die Gelbmarkierten oder mit Datum von akt. Woche): Hallo zusammen, ich arbeite mit einer Excel-Arbeitsmappe, die mehrere Tabellenblätter enthält. Jedes Blatt dokumentiert bestimmte Vorgänge, und die Struktur der Daten ist in allen Blättern...
  7. VBA in einer Zeile zu lang

    in Microsoft Excel Hilfe
    VBA in einer Zeile zu lang: Moin, mein VBA Code ist für eine Zeile zu lang. Kann mir einer helfen wie ich den auf 2 Zeilen aufteilen Kann? arrSchuhDaten = Array(Range("A6"), Range("F6"), Range("J6"), Range("A7"),...
  8. Listbox wird nicht breiter, Schriftgrösse ändert sich

    in Microsoft Excel Hilfe
    Listbox wird nicht breiter, Schriftgrösse ändert sich: Hallo, ich habe ein Formular dessen Breite ich mit der Maus ändern kann. Im Formular habe ich einen Rahmen und darin eine Listbox deren Breite an die Formularbreite angepasst wird....
  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