"Loop ohne Do" Hilfe!?

3 Antworten

wusste gar nicht, dass anscheinend Do While...Loop auch geht

ich kenne diese Paarungen: (Do?) While...Wend, Do..until und Do ...Loop

zum if ohne End if: es gibt die einzeilige Variante, die man verwenden kann, wenn die Alternative sozusagen Weiter im Text heißt.

Also zB:

if a = a then Screen updating = true:then on error goto 0: exit sub

zum Beenden

Woher ich das weiß:eigene Erfahrung

Iamiam  07.01.2019, 22:49

da ist mir die Korrekturzeit davongelaufen... also

if a = "" then Screen updating = true: on error goto 0: MsgBox("a nicht gefüllt!"):exit sub

Das heißt, wenn versehentlich die Variable a nicht gefüllt wurde, wird die Bildschirmaktualisierung wieder eingeschaltet, der On error goto etc Befehl zurückgesetzt, der Grund in einer Messagebox genannt und nach "ok" (erst dann) das Sub verlassen. Mehrere Befehle mit Doppelpunkt = Zeilentrenner aneinanderhängen, kein Endif erforderlich. (und kein Doppelpunkt nach then)

0

end if end if end if end if end if end if ...

Jedes if braucht ein eigenes end if oder du nimmst elseif statt if ab dem 2. Machst du das nicht, sucht er nur innerhalb des aktuellen if nach dem do für das loop und da steht ja keins, daher die Meldung.


Phagon 
Beitragsersteller
 07.01.2019, 20:40

Uf... danke gibt es nicht sowas wie "End all Ifs"?

0
Phagon 
Beitragsersteller
 07.01.2019, 21:20
@EmWald

a war r hatte das korrigiert.

0
Phagon 
Beitragsersteller
 07.01.2019, 21:11

Danke bin noch neu drin, aber ich habe noch einen Fehler endteckt:

d=Tabelle1.Cells(6, 3 + r + 1)

Funktioniert nicht... Was nun?

0
EmWald  07.01.2019, 21:13
@Phagon

r hat keinen Wert zugewiesen bekommen am Anfang. Hatte es mir gar nicht so ganz genau angeschaut... Darf ich fragen, was du damit genau tun willst?

0
Phagon 
Beitragsersteller
 07.01.2019, 21:22
@EmWald

a war r hatte es bei mir korrigiert aber hier nicht.

0
Phagon 
Beitragsersteller
 07.01.2019, 21:24
@Phagon

Ich wollte sowas ähnliches wie ein Übersetzer bauen jeder Buchstabe hat ein Zahlenwert.

0

Du hast deine If-s nicht geschlossen.


augsburgchris  08.01.2019, 10:16
Private Sub CommandButton1_Click()
Dim a, b, c, d As Integer
a = 0
Do While Tabelle1.Cells(6, 3 + r) <> ""
   b = Tabelle1.Cells(6, 3 + r)
   d = Tabelle1.Cells(6, 3 + r + 1)
   If b = "A" Or "a" Or "Ä" Or "ä" Then c = 1
   If b = "B" Or "b" Then c = 2
   If b = "G" Or "g" Then c = 3
   If b = "D" Or "d" Then c = 4
   If b = "E" Or "e" Then c = 5
   If b = "U" Or "u" Or "Ü" Or "ü" Or "V" Or "v" Or "W" Or "w" Then c = 6
   If b = "Z" Or "z" Then c = 7
   If b = "H" Or "h" Then c = 8
   If b = "C" Or "c" And d = "H" Or "h" Then c = 8
    Tabelle1.Cells(7, 3 + r) = c
   r = r + 1
Loop
End Sub

Versuch es mal so.

0
augsburgchris  08.01.2019, 10:32
@augsburgchris

Alternativ könntest du dir mal Select Case anschauen:

Sub marine()

Zelle = Range("A1")

Select Case Zelle
Case "a", "A", "Ä", "ä"
Zelle2 = 1
Case "b", "B"
Zelle2 = 2
Case "g", "G"
Zelle2 = 3
Case "d", "D"
Zelle2 = 4
Case "e", "E"
Zelle2 = 5
Case "u", "U", "ü", "Ü"
Zelle2 = 6
Case "z", "Z"
Zelle2 = 7
Case "h", "H"
Zelle2 = 8

End Select

Range("A1").Offset(1, 0) = Zelle2

End Sub
0