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 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"),...
  3. 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....
  4. Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch

    in Microsoft Excel Hilfe
    Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch: Hallo zusammen, erstmal danke für all die Tipps und Kniffe, die ich ohne eigenen Thread gefunden und gelernt habe. Leider finde ich mein Thema nirgendwo... Aktuell habe ich zwei Spalten mit...
  5. Per Hyperlink ausgeblendetes Blatt einblenden

    in Microsoft Excel Hilfe
    Per Hyperlink ausgeblendetes Blatt einblenden: Hola ins Forum, ich bräuchte mal wieder eure Hilfe. Ich habe ein Tabellenblatt das mir als Register dient und wo Hyperlinks eingefügt sind um auf das dazugehörige Blatt zu springen. Diese Blätter...
  6. Bilder über VBA Größe und DPI ändern für Webshop

    in Microsoft Excel Hilfe
    Bilder über VBA Größe und DPI ändern für Webshop: Hallo Excel Spezialisten, Ich habe mir eine recht aufwendige Tabelle gebastelt, aus der ich Daten für meinen Webshop generiere und in einer .csv bereitstelle. Es werden neue Preislisten...
  7. VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen

    in Microsoft Word Hilfe
    VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen: Hallo zusammen, ich habe eine Word-Vorlage mit Platzhaltern, in die ich mit VBA Daten aus einer Excel-Datei einfüge (in eine Excel-Zeile schreibe ich alle Daten für ein neues Word-Dokument). So...
  8. Erstellung eines Dynamischen Kalenders (ggf. VBA)

    in Microsoft Word Hilfe
    Erstellung eines Dynamischen Kalenders (ggf. VBA): Guten Morgen an Alle, ich hoffe, es geht euch soweit gut :) Ich wende mich heute an euch, weil ich gerade vollkommen verzweifle und irgendwie so ganz und garnicht weiterkomme und irgendwie...
  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