Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

Zeichenkette per for-next-schleife erstellen

Betrifft: Zeichenkette per for-next-schleife erstellen von: lauer
Geschrieben am: 09.08.2008 19:06:21

Hallo,
ich möchte mir eine Zeichenkette erstellen lassen.
Ich habe in einer Zelle (B11) den Anfang (1) angegeben und in der anderen (C11) steht das Ende (49).
Nun möchte ich, dass er mir in der E11 die Zeichenkette reinschreibt.
Also ich möchte dann in E11 stehen haben: 1,2,3,4,5,6,7,...,45,46,47,48,49
Wie man sieht sollen die Zahlen per Komma getrennt sein, aber keine Leerzeichen enthalten!
Leider steht wenn ich den Button drücke nicht die Zeichenkette in E11, sondern 1225 :(


Private Sub CommandButton1_Click()
    Dim anfang, ende, differenz, i As Integer
    Dim zahlenkette As String
        
'Bereich für Professoren festlegen
    anfang = Application.Workbooks("IDBereich.xlsm").Worksheets("Seiten").Cells(11, 2).Value
    ende = Application.Workbooks("IDBereich.xlsm").Worksheets("Seiten").Cells(11, 3).Value
    differenz = ende - anfang
    zahlenkette = " "
    For i = anfang To ende
        If i = anfang Then
            zahlenkette = i
            Else
            zahlenkette = zahlenkette + "," + i
        End If
    Next i
    Application.Workbooks("IDBereich.xlsm").Worksheets("Seiten").Cells(11, 5).Value =  _
zahlenkette
End Sub



Seht ihr meinen Fehler oder habt eine bessere (funktionierende) Methode das zu bewerkstelligen?

  

Betrifft: AW: Zeichenkette per for-next-schleife erstellen von: Hajo_Zi
Geschrieben am: 09.08.2008 19:23:19

Hallo Nick,

ich hätte nicht + benutzt sondern &

GrußformelHomepage


  

Betrifft: AW: Zeichenkette per for-next-schleife erstellen von: lauer
Geschrieben am: 09.08.2008 19:25:52

SUPER, danke!
Manchmal ist es wirklich zu einfach :)


  

Betrifft: AW: Zeichenkette per for-next-schleife erstellen von: Daniel
Geschrieben am: 09.08.2008 19:41:12

Hi
ja, wie HaJo schon gesagt hat, das Zeichen für das Verketten von Strings ist "&"
kleiner Tip, die IF-Abfrage innerhalb der Schleife kannst du dir sparen:

Private Sub CommandButton1_Click()
     Dim anfang, ende, differenz, i As Integer
     Dim zahlenkette As String
         
 'Bereich für Professoren festlegen
     anfang = Application.Workbooks("IDBereich.xlsm").Worksheets("Seiten").Cells(11, 2).Value
     ende = Application.Workbooks("IDBereich.xlsm").Worksheets("Seiten").Cells(11, 3).Value
     differenz = ende - anfang
     zahlenkette = ""
     For i = anfang To ende
             zahlenkette = zahlenkette & "," & i
     Next i
     Zahlenkette = Mid$(Zahlenkette, 2)
     Application.Workbooks("IDBereich.xlsm").Worksheets("Seiten").Cells(11, 5).Value =  _
 zahlenkette
 End Sub



oder so:

Private Sub CommandButton1_Click()
     Dim anfang, ende, differenz, i As Integer
     Dim zahlenkette As String
         
 'Bereich für Professoren festlegen
     anfang = Application.Workbooks("IDBereich.xlsm").Worksheets("Seiten").Cells(11, 2).Value
     ende = Application.Workbooks("IDBereich.xlsm").Worksheets("Seiten").Cells(11, 3).Value
     differenz = ende - anfang
     zahlenkette = anfang
     For i = anfang + 1 To ende
             zahlenkette = zahlenkette & "," & i
     Next i
     Application.Workbooks("IDBereich.xlsm").Worksheets("Seiten").Cells(11, 5).Value =  _
 zahlenkette
 End Sub



innerhalb die Schleife sollte sich nur der notwendigste Code befinden, weil das kostest Rechenzeit (ich weiß, ist hier nicht relevant, aber nur so aus prinzip)
Gruß,Daniel


  

Betrifft: AW: Dim-Anweisung von: Erich G.
Geschrieben am: 09.08.2008 20:12:18

Hi Vorname,
noch ein Tipp:

Wenn anfang, ende, differenz und i den Typ Integer haben sollen, reicht
Dim anfang, ende, differenz, i As Integer
NICHT aus. anfang, ende, differenz sind dann Variant-Variablen.

Hiermit werden alle Variablen der Zeile zu Integers:
Dim anfang As Integer, ende As Integer, differenz As Integer, i As Integer

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


 

Beiträge aus den Excel-Beispielen zum Thema "Zeichenkette per for-next-schleife erstellen"