Office: Schleife mit TextBoxen?? VBA

Helfe beim Thema Schleife mit TextBoxen?? VBA in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich hab mal eine Frage: Ich habe eine UserForm in der ich oben ein "Abfrage Datum" eingebe. Je nachdem ob ich dort 1,2 oder 3 Abfragedaten... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Knarrenheinz, 14. Januar 2011.

  1. Knarrenheinz Erfahrener User

    Schleife mit TextBoxen?? VBA


    Hallo,
    ich hab mal eine Frage:
    Ich habe eine UserForm in der ich oben ein "Abfrage Datum" eingebe. Je nachdem ob ich dort 1,2 oder 3 Abfragedaten eingebe soll das Makro eine schleife durchlaufen, damit auch bei den Abfragedaten 2 und 3 Ergebnisse angezeigt werden.


    Am besten ihr guckt euch mal die Datei an... dann versteht ihr schon was ich meine.
    Als erstes würde ich sagen If in Textbox 3&4 etwas steht dann beginne mit der Schleife.... aber wie man dann der Schleife sagt das die Ergebnisse in die anderen Textboxen müssen ist mir ein rätsel...

    Danke schon mal...
     
    Knarrenheinz, 14. Januar 2011
    #1
  2. Beverly
    Beverly Erfahrener User
    Hi Heinz,

    im UserForm für den CommandButton diesen Code:
    Code:
    Private Sub CommandButton1_Click()
        If TextBox1 <> "" And TextBox2 <> "" Then Berechnung 1
        If TextBox3 <> "" And TextBox4 <> "" Then Berechnung 2
        If TextBox5 <> "" And TextBox6 <> "" Then Berechnung 3
    End Sub
    
    Und im allgemeinen Modul diesen Code:
    Code:
    Sub Berechnung(bytSpalte As Byte)
        Dim rngZelleStart As Range
        Dim rngZelleEnde As Range
        Dim strControl1 As String
        Dim strControl2 As String
        Dim strControl3 As String
        Dim strControl4 As String
        Dim strControl5 As String
        Dim strControl6 As String
        Select Case bytSpalte
            Case 1
                 strControl1 = "TextBox1"
                 strControl2 = "TextBox2"
                 strControl3 = "TextBox7"
                 strControl4 = "TextBox8"
                 strControl5 = "TextBox9"
                 strControl6 = "TextBox10"
            Case 2
                 strControl1 = "TextBox3"
                 strControl2 = "TextBox4"
                 strControl3 = "TextBox11"
                 strControl4 = "TextBox12"
                 strControl5 = "TextBox13"
                 strControl6 = "TextBox14"
            Case 3
                 strControl1 = "TextBox5"
                 strControl2 = "TextBox6"
                 strControl3 = "TextBox15"
                 strControl4 = "TextBox16"
                 strControl5 = "TextBox17"
                 strControl6 = "TextBox18"
        End Select
        With Sheets("Tabelle1")
            Set rngZelleStart = .Columns(1).Find(CDbl(UserForm1.Controls(strControl1)), lookat:=xlWhole)
            Set rngZelleEnde = .Columns(1).Find(CDbl(UserForm1.Controls(strControl2)), lookat:=xlWhole)
            If rngZelleStart Is Nothing Or rngZelleEnde Is Nothing Then
                MsgBox "Wert nicht gefunden"
            Else
                UserForm1.Controls(strControl3) = _
                    Application.Sum(.Range(.Cells(rngZelleStart.Row, 2), .Cells(rngZelleEnde.Row, 2)))
                UserForm1.Controls(strControl4) = _
                    Application.Sum(.Range(.Cells(rngZelleStart.Row, 2), .Cells(rngZelleEnde.Row, 2))) / 2
                UserForm1.Controls(strControl5) = _
                    Application.Sum(.Range(.Cells(rngZelleStart.Row, 2), .Cells(rngZelleEnde.Row, 2))) / 3
                UserForm1.Controls(strControl6) = _
                    Application.Sum(.Range(.Cells(rngZelleStart.Row, 2), .Cells(rngZelleEnde.Row, 2))) / 4
            End If
        End With
        Set rngZelleStart = Nothing
        Set rngZelleEnde = Nothing
    End Sub
    
    Für die Berechnung benötigst du kein Tabellenblatt, das kann man direkt im Code machen.

    Bis später,
    Karin
     
    Beverly, 14. Januar 2011
    #2
  3. Knarrenheinz Erfahrener User
    Vielen Dank!


    Einfach perfekt!!!
    Ich hab das wohl etwas umstädlich angefangen :)
     
    Knarrenheinz, 15. Januar 2011
    #3
  4. Knarrenheinz Erfahrener User

    Schleife mit TextBoxen?? VBA

    Hey,

    ich hab nochmal ne Frage:
    Ich würde jetzt gern aus der Userform die Werte in ein Druckformular kopieren.
    Leider überschreibe ich mir jedes mal die Zeilen, weil ich nicht weiß wie ich dem Makro erklären soll das es eine Spalte weiter springen muss..

    Vielen Dank, Marius
     
    Knarrenheinz, 17. Januar 2011
    #4
  5. Beverly
    Beverly Erfahrener User
    Hi Marius,

    schreibe den Code für das Eintragen nach diesem Prinzip:
    Code:
    Cells(7, 5 + bytSpalte) = CDbl(UserForm1.Controls(strControl1))
    
    Da du die Spalte, in der sich die TexBoxen auf dem UserForm stehen, ja mit an die Prozedur übergibst, kannst du sie auch gleich zur Festlegung der Spalte für das Tabellenblatt verwenden.

    Ich nehme an, dass du die Zahlen aus der TextBox auch als "richtige" Zahl ins Tabellenblatt schreiben möchtest? Derzeit trägst du sie ja als Text ein, denn Inhalte von TextBoxen sind immer Text. Folglich musst du die "Textzahlen" aus den TextBoxen noch in Zahlen umwandeln - da im gegebenen Fall auch Dezimalzahlen vorkommen können, verwendet man dafür CDbl (Bezeichnung für den Datentyp Double).

    Bis später,
    Karin
     
    Beverly, 17. Januar 2011
    #5
  6. Knarrenheinz Erfahrener User
    Vielen Dank!

    Wieder etwas gelernt!!!!!

    MfG, Marius
     
    Knarrenheinz, 17. Januar 2011
    #6
Thema:

Schleife mit TextBoxen?? VBA

Die Seite wird geladen...
  1. Schleife mit TextBoxen?? VBA - Similar Threads - Schleife TextBoxen VBA

  2. Verkettung von Zellen - Schleife

    in Microsoft Excel Hilfe
    Verkettung von Zellen - Schleife: Hallo, folgendes Problem: Ich möchte in einer Tabelle die Texte in Spalte A mit den Texten in Spalte B verketten. Dazu benutze ich folgenden Code: Sub VerkettungAB() Range("E2").Value =...
  3. While-Schleife wird nicht beendet

    in Microsoft Access Hilfe
    While-Schleife wird nicht beendet: Hallo Forum Ein aus einem Unterformular soll in ein Feld im Hauptformular übernommen (fix abgespeichert) werden. Das Feld wurde nachträglich im Hauptformular (+ Tabelle) eingefügt. Nun habe ich...
  4. For Next Schleife

    in Microsoft Excel Hilfe
    For Next Schleife: Hallo zusammen, da bin ich wieder und wie kann es anders sein mit einem Problem. Ich habe eine Tabelle (im Anhang) dort soll die Werte in Zellen a/b/f kopiert werden und in die erste frei Zeile...
  5. VBA Schleife kopieren und einfügen von Spalten

    in Microsoft Excel Hilfe
    VBA Schleife kopieren und einfügen von Spalten: Hallo Zusammen, Ich habe auf einem Tabellenblatt eine variable Anzahl an Spalten mit Daten die auch eine variable Anzahl an Zeilen haben, auch mit Lücken in den Zeilen. Die Spalten mit den Infos...
  6. Textboxen per Schleife auslesen

    in Microsoft Excel Hilfe
    Textboxen per Schleife auslesen: Moin zusammen! Habe folgenden Code), den ich in eine Schleife umwandeln will. Es werden also Textboxen ausgelesen und in Excel geschrieben. Bitte um Hilfe! Danke im Voraus! *Smilie Code:...
  7. Schleife für Array Problem mit Textbox-Bezeichnung

    in Microsoft Excel Hilfe
    Schleife für Array Problem mit Textbox-Bezeichnung: Hallo miteinander, Heute ist mein Problem von geringerer Natur. Dank des Forums bin ich in den letzten Wochen mit meinem kleinen Projekt gut vorangekommen. Jetzt würde ich aber doch gerne noch...
  8. Schleife um 1.000.000 Textboxen auszulesen

    in Microsoft Excel Hilfe
    Schleife um 1.000.000 Textboxen auszulesen: Hallo zusammen, gut der Titel war wohl etwas übertrieben aber ich würde gerne eine Schleife basteln die mir Viel Schreibarbeit abnehmen würde. Und zwar geht es um folgendes, ich arbeite nach wie...
  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