Office: End If End If End If mit einer Zeile beenden

Helfe beim Thema End If End If End If mit einer Zeile beenden in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich habe mal wieder eine mehr oder weniger wichtige Frage. Bei meiner VBA Pogrammierung habe ich einige If-Anweisungen in andere... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von E-MaX-I, 15. Juni 2011.

  1. E-MaX-I Erfahrener User

    End If End If End If mit einer Zeile beenden


    Hallo,

    ich habe mal wieder eine mehr oder weniger wichtige Frage.

    Bei meiner VBA Pogrammierung habe ich einige If-Anweisungen in andere If-Anweisungen, so das am Ende mehrere End If stehen.

    Meine Frage, gibt es eine Möglichkeit mit einer Zeile (am liebsten ein Befehl) die ganzen If-Aweisungen zu beenden?

    Sinn der Sache, da ich am Ende hin mindestens 1Mio. mal End If tippen muß...

    Bin für jeden Vorschlag, Lösung oder andere Wege dankbar.

    Gruß
    Emi
     
    E-MaX-I, 15. Juni 2011
    #1
  2. Hajo_Zi
    Hajo_Zi Erfahrener User
    Hallo Emi,

    arbeite doch mit Else und ElseIf
    Nein das geht nicht.

    Gruß Hajo
     
    Hajo_Zi, 15. Juni 2011
    #2
  3. E-MaX-I Erfahrener User
    ElseIf

    Hallo Hajo,

    habe mir den Befehl ElseIf nochmal angeschaut und tatächlich würde ich damit weiterkommen als auf dieser Weise.

    Ich bin zur Zeit so weit das eine Meldung kommt das der Code zu laaaaang ist. :shock:

    Wusste nicht das dies möglich ist, da mir meistens kleinigkeiten per VBA reicht, aber für meinen Vater der Hilfe braucht um seine Arbeit fertig zu bekommen muß es auch einfach und verständlich sein, vorallem eine Zweitsprache mit einzubauen ist nicht einfach.

    Danke, ich versuche mal den zu langen Code damit zu bearbeiten.

    Gruß
    Emi

    ---
    Naja, ich müsste es nur hinbekommen Else auch als Else zu schreiben, meine Variante ist immer Esle... Kein Plan warum, schlimm ist es nur das ich es nicht mal merke. :lol:
     
    E-MaX-I, 15. Juni 2011
    #3
  4. fette Elfe Erfahrener User

    End If End If End If mit einer Zeile beenden

    Re: ElseIf


    Wie lang ist denn der Code??
    Und meinst Du eine Zeile ist zu lang? Die kann man mit "_" umbrechen in zwei oder mehrere Zeilen.
    Oder hast Du zuviele Zeilen?
    Wenn ja, zu viele in einer Prozedur oder insgesamt in allen Prozeduren?

    Wusste bisher auch nicht das es ein "zuviel" gibt.

    Diese Begrenzung würde mich interessieren.



    Zu Deine anfänglichen Frage:
    Manchmal kann man statt "If" auch "Select Case" nehmen, dann muss man nicht ganz so sehr verschachteln.
    Wenns "If" sein muss (oder soll) dann dient es der Übersichtlichkeit der einzelnen Verschachtelungen jeweils einzurücken.
    Und dann macht es allein optisch auch schon Sinn "die ganzen End Ifs" zu schreiben, einfach weil man dann sieht innerhalb welcher Bedingungsabfrage man gerade ist.
    Code sollte nicht nur funktionieren, er sollte auch lesbar sein.
     
    fette Elfe, 15. Juni 2011
    #4
  5. E-MaX-I Erfahrener User
    Hallo Achim,

    der eine Sub hatte vorhin fast 5900 Zeilen, hauptsächlich wegem EndIf.

    Nach dem Select Case (15 Punkte) waren pro Punkt etwa 30 If's ineinander verschachtelt.

    Bin mal gespannt ob das schlaue Buch mich da richtig Leitet.
    Bin grad in VBA Fieber... dementsprechend verärgert wenn's auf einmal nichts geht.

    Ähm.... vielleicht kann ich ja in einem Case eine weitere Select Case setzen...

    :roll: Wo das wohl endet... :mrgreen:

    Gruß
    Emi
     
    E-MaX-I, 15. Juni 2011
    #5
  6. fette Elfe Erfahrener User
    Hallo Emi,

    mir drängt sich der Gedanke auf dass es eventuell sinnvoll sein könnte, wenn Du Deine Code-Struktur noch einmal überdenkst.

    Fast 6000 Zeilen in einer Prozedur, da blickt doch kein Mensch mehr durch... und Excel scheinbar auch nicht.

    Jetzt kennt hier niemand etwas näheres zu Deinem Code, aber es gibt soviele Möglichkeiten Code zu strukturieren, Abfragen zu vereinfachen etc.

    z. Bsp.
    "If .. and .. then"
    "If .. or .. then"
    (beides auch mehrfach und/oder gemischt möglich, dann sind aber Klammern oft sinnvoll, wie bei Mathe)

    Oder eine ganze Reihe von Abfragen unverschachtelt hintereinander setzen und die Ergebnisse in Variablen umwandeln, und diese später auswerten.

    Teile des Codes in andere Prozeduren auslagern, welche an entsprechender Stelle aufgerufen werden.

    usw.
    usw.


    Ich mein, es gibt verdammt viel was ich nicht kenne oder weiß, aber das es wirklich nötig und absolut unumgänglich ist solch ein "Monster" zu schreiben, das kann ich mir nichtmal vorstellen.

    Hatte ich persönlich bei meinen bisherigen Projekten auch nicht.
    Da kamen im Höchstfall jeweils ein paar Hundert Zeilen pro Sub zusammen. (und das ist eher die Ausnahme)

    Der Rest ist strukturiert und aufgeteilt, und da können dann auch schonmal insgesamt 15-20 Tausend Zeilen zusammen kommen.
    (Und ich glaube nicht das dies viel ist, je nachdem was man macht...)


    *grusel*
    (heute Nacht habe ich bestimmt Aplträume...)
    ;O)
     
    fette Elfe, 15. Juni 2011
    #6
  7. E-MaX-I Erfahrener User
    End If End If End If mit einer Zeile beenden :oops:

    Hi,

    da die ganzen Tabelle und alle Seiten pro Tabelle mit sogut 2 Buttons alles erledigt, incl. Druckerauswahl und Drucken, Tabellen kopieren und Register umbenennen, 2 Tabellen löschen usw usw...

    Naja, ich hab mal alles eingegliedert, und muß sagen das allein dadurch die Übersicht doch etwas besser ist.

    Da ich ausreichend Kommentiere dürfte es nach paar Jahre noch verständlich sein was gemacht wurde.

    Siehe da, einige mehrere Sub's angelegt, jeder Schritt für sich und es akzeptiert es wieder.. ;-)

    Nur das Speichern mit dem Inhalt von aus Tabelle "Übersicht" "ZelleA1"&"_"&"ZelleB5" will nicht so recht.

    Gruß
    Emi
     
    E-MaX-I, 15. Juni 2011
    #7
  8. fette Elfe Erfahrener User

    End If End If End If mit einer Zeile beenden


    Hallo EMI,

    probier mal:
    Code:
    Dim strName As String
    
    With ThisWorkbook.Worksheets("Übersicht")
        
        strName = .Range("A1") & "_" & .Range("B5")
        
    End With
    Und dann diese Variable in Deinen Speicherdialog einbauen.
     
    fette Elfe, 15. Juni 2011
    #8
  9. Kallewirsch Erfahrener User
    Hallo,

    schon mal davon gehört, dass man diese ganzen einzelnen Funktionen in separate Sub´s legen kann, und diese dann nacheinander abrufen kann?

    Beispiel:

    Code:
    Sub Machwas()
    call Seite_einrichten
    call Drucken
    Call Blatt_Löschen
    call Daten_löschen
    
    End sub
    Wobei man Call sogar weglassen kann!

    Gruß

    Edgar
     
    Kallewirsch, 15. Juni 2011
    #9
  10. E-MaX-I Erfahrener User
    Hi,

    bisher wusste ich das nicht, aber jetzt.

    Mit all den Bücher die man leihen/kaufen und sonst wie bekommt wird man nicht ein Profi, aber durch probieren und testen lernt man.
    Wie man sieht habe ich wohl das Kapitel eifrig übersprungen...

    Ich muss sagen das mir VBA gefällt, vor allem das man endlich das hat was man selbst möchte und man muß sich nicht an andere Gewöhnen.

    Mich freut es immer wenn ich hier geholfen bekomme, den ich melde mich immer erst wenn ich keinen Ausweg kenne.

    Das schöne ist aber das ich die Hilfe wo ich hier bekomme sehr gut merke.
    Ob das jetzt daher kommt das ich mich immer grün und blau ärgere das es nicht geht, oder ob es daher kommt das ich die Hilfe immer erst separat ausprobiere... das weis ich nicht aber ich Bedanke mich immer für das Wissen.

    Sobald ich an ein Rechner komme der das erforderliche Programm drauf hat wird erst mal eure Code's ausprobiert.

    Gruß
    Emi ;-)
     
    E-MaX-I, 18. Juni 2011
    #10
Thema:

End If End If End If mit einer Zeile beenden

Die Seite wird geladen...
  1. End If End If End If mit einer Zeile beenden - Similar Threads - End End End

  2. Ich bin mit meinem Wissen am Ende...

    in Microsoft Access Hilfe
    Ich bin mit meinem Wissen am Ende...: Hallo - ich habe ein Problem, und ich finde nach gefühlten 100ten Versuchen den Fehler nicht: Also, ich habe eine Tabelle mit Mitglieder, die je nach Sektion einer Zahl zugeordnet sind (z.B. 1 =...
  3. Zeitdauer berechnen Start/Ende in versch. Spalten

    in Microsoft Excel Hilfe
    Zeitdauer berechnen Start/Ende in versch. Spalten: hallo zusammen, Start und Ende eines Ereignisses stehen in unterschiedlichen Zeilen und ich möchte daraus mittels power query die Dauer je Ereignis in je einer Zeile berechnen. Habs mit...
  4. Absätze und Leerzeichen am Ende löschen

    in Microsoft Word Hilfe
    Absätze und Leerzeichen am Ende löschen: Hallo! Folgendes Problem: In einem Dokument, dass auf einer Vorlage basiert, gibt es teilweise mehrere (1 bis 20) Abschnitte (eingefügt über Layout - Umbrüche - Abschnittsumbrüche). Mit 1...
  5. VBA - Datensätze ans Ende einer anderen Tabelle kopieren

    in Microsoft Excel Hilfe
    VBA - Datensätze ans Ende einer anderen Tabelle kopieren: Hallo zusammen, ich habe gerade eine "Abrechnungs"-Datei für einen Kindergartenbasar erstellt. Es wäre klasse, wenn man per Schaltfläche die Datensätze aus der Tabelle "Kaeufer" ans Ende der...
  6. Textbox: Ans Ende der Eingabe springen

    in Microsoft Access Hilfe
    Textbox: Ans Ende der Eingabe springen: Hallo, ich habe in einem Formular, in welches 10stellige Codenummern eingegeben werden sollen. Die ersten 5 Ziffern der Nummer sind immer gleich, deswegen lasse ich die ersten Nummern bei...
  7. VBA Code anpassen mit variablem Tabellen Ende

    in Microsoft Excel Hilfe
    VBA Code anpassen mit variablem Tabellen Ende: Hallo, im folgenden Code möchte ich gerne statt eines fest vorgegebenen Tabellen Ende ein variables einsetzen. Sub Verkettung() Dim i As Long For i = 2 To 15000 'Hier soll kein festes Ende...
  8. Fehler End If ohne End Block

    in Microsoft Excel Hilfe
    Fehler End If ohne End Block: Hallo, ich habe ein Problem mit einem Code es kommt eine Fehlermeldung: End If ohne End Block Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("Suchkriterium"))...
  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