Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.04.2024 20:05:21
28.04.2024 18:33:31
28.04.2024 18:25:12
28.04.2024 14:18:05
Anzeige
Archiv - Navigation
1932to1936
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Zahl in UF einfügen, korregieren u. rück
26.05.2023 08:55:28
chris58

Hallo !
Ich brauch Hilfe bei dem u.a. Makro.
wie kann ich in die Textbox1 die Zahl bekommen die in C6 steht, diese dann ändern und wieder in C6 zurückschreiben ?
Habe das Makro unten eingefügt. hoffe das passt so.
Danke
chris58


Option Explicit

Private Sub CommandButton1_Click()
Dim StartZeile&
Dim Ws As Worksheet
Set Ws = ActiveSheet
StartZeile = Ws.Cells(3, 1).End(xlUp).Row + 5

wie kann ich in die Textbox1 die Zahl bekommen die in C6 steht, diese dann ändern und wieder in C6 zurückschreiben ?

Ws.Cells(StartZeile, 3) = CDbl(Format(TextBox1, "#,##0.00"))


Ws.Cells(StartZeile + 1, 3) = TextBox3
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub TextBox1_Change()

End Sub

Private Sub UserForm_Click()

End Sub

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahl in UF einfügen, korregieren u. rück
26.05.2023 12:31:47
Piet
Hallo

probiere es bitte mal so: - TextBox1 = CDbl(Format(Ws.Cells(StartZeile, 3), "#,##0.00"))

Piet


AW: Zahl in UF einfügen, korregieren u. rück
26.05.2023 13:56:19
chris58
Hallo !
Ich habe das nun ausprobiert. Jedoch geht das nur, wenn ich einen zusätzlichen CommandButton3 im Formular mache mit dem ich die Daten reinhole.
Ansonst geht das nicht. Ich komm aber damit zurecht, außer du hast noch eine andere Idee, wie ich das gemeinsam, also in einem Aufwasch, machen könnte.
Danke jedenfalls mal
chris58

Option Explicit

Private Sub CommandButton1_Click()
Dim StartZeile&
Dim Ws As Worksheet
Set Ws = ActiveSheet
StartZeile = Ws.Cells(3, 1).End(xlUp).Row + 5


Ws.Cells(StartZeile, 3) = CDbl(Format(TextBox1, "#,##0.00"))


Ws.Cells(StartZeile + 1, 3) = TextBox3
End Sub
-------------------------------------------------

Private Sub CommandButton2_Click()
Unload Me
End Sub
--------------------------------------------------

Private Sub CommandButton3_Click()
Dim StartZeile&
Dim Ws As Worksheet
Set Ws = ActiveSheet
StartZeile = Ws.Cells(3, 1).End(xlUp).Row + 5


TextBox1 = CDbl(Format(Ws.Cells(StartZeile, 4), "#,##0.00"))
UserForm1.TextBox1.SetFocus

Ws.Cells(StartZeile + 1, 3) = TextBox3
End Sub


Anzeige
AW: Zahl in UF einfügen, korregieren u. rück
26.05.2023 13:57:00
chris58
Hallo !
Ich habe das nun ausprobiert. Jedoch geht das nur, wenn ich einen zusätzlichen CommandButton3 im Formular mache mit dem ich die Daten reinhole.
Ansonst geht das nicht. Ich komm aber damit zurecht, außer du hast noch eine andere Idee, wie ich das gemeinsam, also in einem Aufwasch, machen könnte.
Danke jedenfalls mal
chris58

Option Explicit

Private Sub CommandButton1_Click()
Dim StartZeile&
Dim Ws As Worksheet
Set Ws = ActiveSheet
StartZeile = Ws.Cells(3, 1).End(xlUp).Row + 5


Ws.Cells(StartZeile, 3) = CDbl(Format(TextBox1, "#,##0.00"))


Ws.Cells(StartZeile + 1, 3) = TextBox3
End Sub
-------------------------------------------------

Private Sub CommandButton2_Click()
Unload Me
End Sub
--------------------------------------------------

Private Sub CommandButton3_Click()
Dim StartZeile&
Dim Ws As Worksheet
Set Ws = ActiveSheet
StartZeile = Ws.Cells(3, 1).End(xlUp).Row + 5


TextBox1 = CDbl(Format(Ws.Cells(StartZeile, 4), "#,##0.00"))
UserForm1.TextBox1.SetFocus

Ws.Cells(StartZeile + 1, 3) = TextBox3
End Sub


Anzeige
AW: Zahl in UF einfügen, korregieren u. rück
27.05.2023 01:48:30
Piet
Hallo

Dein Code ist mir noch nicht so ganz klar was er macht??? - Es geht auch ohne CommandButton. Über Change Ereignis.
Leider startet der Change Code bei jeder Eingabe, statt mit Enter wenn man fertig ist. Das kann man aber austrlcksen!
Gib als letzte Eingabe ein Sonderzeichen ein, z.B. # oder $ Zeichen als Ende Zeichen. Siehe unteren Code. Test ihn mal.

mfg Piet

  • Private Sub TextBox1_Change()
       If Right(TextBox1.Text, 1) = "#" Then
          Eingabe = Replace(TextBox1.Text, "#", "")
          MsgBox "Eingabe: " & Eingabe
       End If
    End Sub



  • Anzeige
    AW: Zahl in UF einfügen, korregieren u. rück
    27.05.2023 09:24:00
    chris58
    Hallo Piet !
    Ich habe die letzte Nacht "gespielt" und habe es etwas anders gemacht. Es tut mir leid, das du dir soviel Arbeit gemacht hast.
    Ich habe beim "Daten holen" was gefunden, das holt mir nur die Tausenderstelle in das Formular. Das hat den Vorteil, das ich dann nichts löschen muß, sondern die letzten 5 Zahlen eintragen kann. Auf dem Formular sind 4 Button angebracht. Meine Frage ist nun: Kann man die Codes der Button 1 + 4 in einen Button vereinen, damit ich nur einen Button benötige ?
    Danke chris58

    Option Explicit

    Private Sub CommandButton1_Click()
    Dim StartZeile&
    Dim Ws As Worksheet
    Set Ws = ActiveSheet
    StartZeile = Ws.Cells(3, 1).End(xlUp).Row + 5
    
    
    Ws.Cells(StartZeile, 3) = CDbl(Format(TextBox1, "#,##0.00"))
    
    
    Ws.Cells(StartZeile + 1, 3) = TextBox3
    End Sub
    Private Sub CommandButton2_Click()
    Unload Me
    End Sub
    Private Sub CommandButton3_Click()
    Dim StartZeile&
    Dim Ws As Worksheet
    Set Ws = ActiveSheet
    StartZeile = Ws.Cells(3, 1).End(xlUp).Row + 5
    
    
    TextBox1 = CDbl(Format(Ws.Cells(StartZeile, 3), "0 ,"""))
    UserForm1.TextBox1.SetFocus
    
    Ws.Cells(StartZeile + 1, 3) = TextBox3
    End Sub
    Private Sub CommandButton4_Click()
    Dim i As Long
            Const NewConstSheet As String = "Berechnung"
            Dim bfound As Boolean
            Dim sMerk As String
            Dim sMaxZeile As Long
            Dim TB As Worksheet
            
            Application.ScreenUpdating = False
            
            'Prüfen ob Tabelle NewConstSheet schon angelegt ist
            For i = 1 To ActiveWorkbook.Sheets.Count
                If ActiveWorkbook.Sheets(i).Name = NewConstSheet Then
                    bfound = True
                    Exit For
                End If
            Next i
            
            'wenn nicht dann anlegen
            If bfound = False Then
                sMerk = ActiveWorkbook.ActiveSheet.Name
                ActiveWorkbook.Sheets.Add after:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
                ActiveWorkbook.ActiveSheet.Name = NewConstSheet
                ActiveWorkbook.Sheets(sMerk).Activate
            End If
            
            Set TB = ActiveWorkbook.Sheets(NewConstSheet)
            
            'nächste leere Zeile ermitteln
            sMaxZeile = TB.Cells(TB.Rows.Count, 1).End(xlUp).Row + 1
            
            'Daten in neue Tabelle übertragen
            TB.Cells(sMaxZeile, 1) = ActiveWorkbook.ActiveSheet.Range("C7")
            TB.Cells(sMaxZeile, 2) = ActiveWorkbook.ActiveSheet.Range("B7")
            TB.Cells(sMaxZeile, 3) = ActiveWorkbook.ActiveSheet.Range("C6")
            TB.Cells(sMaxZeile, 4) = ActiveWorkbook.ActiveSheet.Range("C12")
            TB.Cells(sMaxZeile, 5) = ActiveWorkbook.ActiveSheet.Range("C13")
            TB.Cells(sMaxZeile, 6) = ActiveWorkbook.ActiveSheet.Range("C14")
            TB.Cells(sMaxZeile, 7) = ActiveWorkbook.ActiveSheet.Range("C15")
            TB.Cells(sMaxZeile, 10) = ActiveWorkbook.ActiveSheet.Range("D7")
            
               
            
           '   Formel in Spalte G
            TB.Cells(sMaxZeile, 8).FormulaR1C1 = "=(RC3-R[-1]C3)/(RC1-R[-1]C1)"
           
            '   Formel in Spalte I
            TB.Cells(sMaxZeile, 9).FormulaR1C1 = "=(RC[-1])/24"
            
            '   Formel in Spalte J
            TB.Cells(sMaxZeile, 10).FormulaR1C1 = "=TEXT(RC[-9]-1,""TTTT"")"
         
            Range("A2").Select
         
            Application.ScreenUpdating = True
    
    End Sub


    Anzeige
    Zahl in UF nur Tausenderstelle anzeigen
    27.05.2023 10:43:15
    chris58
    Hallo !
    So, ich hab es hinbekommen. Alles läuft nun - also fast alles.
    Nun bin ich draufgekommen, das bei diesem Code, wenn ich die Zahl 9499,99 eingegeben habe, dann übernimmt der Code mir die Tausenderstelle (also 9 ) in die UF.
    Wenn ich jedoch 9500,00 drinnen stehen habe, dann rundet er auf 10 auf - das ist aber falsch. Erst wenn 10.000,00 in C6 steht, dann soll der Code mir die 10 in die UF bringen.
    Hat wer eine Lösung
    Danke chris58

    Private Sub CommandButton1_Click()
    Dim StartZeile&
    Dim Ws As Worksheet
    Set Ws = ActiveSheet
    StartZeile = Ws.Cells(3, 1).End(xlUp).Row + 5
    
    
    Ws.Cells(StartZeile, 3) = CDbl(Format(TextBox1, "#,##0.00")) ´die Tausenderstelle soll in die UF übernommen werden
    
    
    Ws.Cells(StartZeile + 1, 3) = TextBox3
    End Sub


    Anzeige
    AW: Zahl in UF nur Tausenderstelle anzeigen
    27.05.2023 18:48:52
    Piet
    Hallo

    mein Tipp ist, schreibe dir die Makros in ein normales Modul und teste sie bis sie korrekt laufen.
    Dann kannst du mit einem Command Button alle 4 aufrufen. Siehe unten!
    Zum Problem mit aufrunden, probiere es bitte mit CInt(TextBox1) statt CDbl()

    mfg Piet

  • Private Sub CommandButton1_Click()
      Call Makro1   'du kannst jedem Makro beliebige Namen geben
      Call Makro2   'dann bitte den Makro Namen wie im Modul angeben!
      Call Makro3
      Call Makro4
    End Sub



  • AW: Zahl in UF nur Tausenderstelle anzeigen
    27.05.2023 19:50:28
    chris58
    Hallo Piet !
    Ich habe die datei gezippt, da ich Zip nicht auf meinem PC hatte, habe ich dies heruntergeladen.
    Hoffe Du kennst kannst das öffnen.
    Das mit dem Button "Daten holen" da bringt er mir bei 9.500,00 die Zahl 10 und darunter bei 9.499,99 eben 9. Das mit deinem guten Rat geht auch nicht, oder ich bin einfach zu dumm dazu.
    Danke jedenfalls, das Du mir behilflich bist.
    lg chris58

    https://www.herber.de/bbs/user/159352.zip


    Anzeige
    AW: Zahl in UF nur Tausenderstelle anzeigen
    29.05.2023 15:19:00
    chris58
    Hallo !
    Danke für Eure Hilfe. Ich, respektive mir wurde von anderer Seite geholfen. Ich bedanke mich für Eure nette Hilfe und verbleibe
    mit Hochachtung vor Eurem Fachwissen.
    lg chris58


    AW: Zahl in UF nur Tausenderstelle anzeigen
    29.05.2023 15:21:09
    chris58
    Ach ja, der Code (fast vergessen).
    Das Formu sollte davon wissen.

    Private Sub CommandButton3_Click()
    Dim StartZeile&
    Dim Ws As Worksheet
    Set Ws = ActiveSheet
    StartZeile = Ws.Cells(3, 1).End(xlUp).Row + 5
    
    
    TextBox1 = Int(Ws.Cells(StartZeile, 3) / 1000) ´dies wurde so geändert
    
    UserForm1.TextBox1.SetFocus
    
    Ws.Cells(StartZeile + 1, 3) = TextBox3
    End Sub


    Anzeige
    AW: Zahl in UF nur Tausenderstelle anzeigen
    30.05.2023 11:13:38
    Pappawinni
    Ob das nicht ironisch gemeint ist?
    Für mich sieht das so aus, als wäre da jemand nicht in der Lage gewesen, seine Frage genau zu formulieren und es gab wohl jemanden, der zufällig erraten hat, was das werden soll.
    Wenn ich etwas nicht leiden kann, dann Leute, die Kritik üben, aber selbst nichts auf die Reihe bringen...

    302 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige