VisualBasic Duplicate Declaration

jonesjunior

Lt. Commander
Dabei seit
Okt. 2008
Beiträge
1.699
Hallo,

ich versuche gerade etwas zu programmieren und komme nicht weiter.
Es soll eine Info-Box werden, in der steht: Dies ist Meldung 1.
Wenn man auf OK klickt soll kommen: Dies ist Meldung 2 und danach nochmal mit einer 3.

Code:
Sub Aufgabe()
    Dim zähler As Integer
    Dim myPrompt As String
    myPrompt = "Dies ist Meldung"
    For zähler = 1 To 3 Step 1
        MsgBox CStr(zähler), vbInformation, "modul:test01,sub:Aufgabe"
    Next
    completePrompt = myPrompt & " " & CStr(zähler) & "."
    Dim completePrompt As String
    MsgBox completePrompt, vbInformation, "modul:test01,sub:Aufgabe"
End Sub

Ich bekomme immer die Fehlermeldung:
Compile error: Duplicate declaration in current scope.

Was muss ich verändern?
Danke im Voraus.

MfG
Jones
 

Simcrack

Lt. Junior Grade
Dabei seit
März 2011
Beiträge
392
Diese Zeile rausstreichen: "Dim zähler As Integer"

Du musst einen Zähler nicht deklarieren, das geschieht automatisch
Ergänzung ()

Die Zeile: "Dim completePrompt As String"
gehört übrigens an den Anfang des Codes, du hast dieser Variable einen wert zugewiesen, bevor sie deklariert wurde
 
Zuletzt bearbeitet:

jonesjunior

Lt. Commander
Ersteller dieses Themas
Dabei seit
Okt. 2008
Beiträge
1.699
Danke, jetzt kommt keine Fehlermeldung mehr.

Jedoch habe ich in dem Info Fenster nur 1,2,3 stehen, der Text fehlt.
 
Zuletzt bearbeitet:

tester_

Cadet 4th Year
Dabei seit
Sep. 2009
Beiträge
73
Du definierst completePrompt nachdem du es schon mal verwendet hast. Ich würde die 2 Zeilen tauschen
completePrompt = myPrompt & " " & CStr(zähler) & "."
Dim completePrompt As String
 

jonesjunior

Lt. Commander
Ersteller dieses Themas
Dabei seit
Okt. 2008
Beiträge
1.699
Code:
Sub Aufgabe()
    Dim myPrompt As String
    myPrompt = "Dies ist Meldung"
    For zähler = 1 To 3 Step 1
    
    Dim completePrompt As String
    completePrompt = myPrompt & " " & CStr(zähler) & "."
    MsgBox completePrompt, vbInformation, "modul:test01,sub:Aufgabe"
    Next
End Sub

Es hat so geklappt! :)
 

easy.2ci

Commodore
Dabei seit
Mai 2006
Beiträge
4.387
Könntest deine MSGBOX so umbauen:

MsgBox(myPrompt & " " & zähler, vbInformation, "modul:test01,sub:Aufgabe")


Dann haste den Text....
 

jonesjunior

Lt. Commander
Ersteller dieses Themas
Dabei seit
Okt. 2008
Beiträge
1.699
Letzte Frage, dann nerv ich euch nicht mehr :D

Ich brauche das:
Dies ist Meldung 1 1.
Dies ist Meldung 1 2.
Dies ist Meldung 2 1.
Dies ist Meldung 2 2.

Geht das auch mit For...Next und mit dim, Integer,String oder brauche ich da etwas ganz anderes?
 

chu_

Lt. Commander
Dabei seit
März 2011
Beiträge
1.200
du musst einfach 2 For schleifen schachteln, dann bekommste das auch hin :)

Code:
Sub Aufgabe()
    Dim myPrompt As String
    myPrompt = "Dies ist Meldung"
    For i = 1 To 3 Step 1
      For j = 1 To 3 Step 1
          Dim completePrompt As String
          completePrompt = myPrompt & " " & i & " " & j & "."
          MsgBox completePrompt, vbInformation, "modul:test01,sub:Aufgabe"
       Next
    Next
End Sub
 

jonesjunior

Lt. Commander
Ersteller dieses Themas
Dabei seit
Okt. 2008
Beiträge
1.699
Wow, vielen Dank!! :)
 

Erdmännchen

Commander
Dabei seit
Dez. 2008
Beiträge
2.242
Wenn du über Integer iterierst in deiner For-Schleife, dann musst du die Step-Width nicht angeben, dann passiert das automatisch mit dem Inkrement um den Zähler 1 und üblicherweise beginnt man bei 0 zu zählen, nicht erst bei 1...

Und weiterhin kannst du deinen Code kürzen und damit lesbarer machen, wenn du in die Zeile der Deklaration gleich die Zuweisung machst.
Also in deinem Fall:
Code:
Dim myPrompt As String = "Dies ist Meldung"
 
Top