Microsoft Excel

Herbers Excel/VBA-Archiv

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

Uf Textboxen rechnen | Herbers Excel-Forum


Betrifft: Uf Textboxen rechnen von: Heinz H
Geschrieben am: 05.01.2010 11:16:11

Hallo Leute

Ich habe in einer UF mehrere Textboxen,zum eingeben von Arbeits + Pausezeiten. ( In Industriezeiten zB. 15,50 = 15:30 )

Nun möchte ich in Textbox20 das Ergebniss von ( Sinngemäß )
Es geht um die Wochenarbeitszeit zu ermitteln.

=WENN(Textbox5>0;Textbox2-Textbox1;WENN(Textbox5=0;Textbox2-Textbox)-Textbox5)-Textbox3

=SUMME in Textbox20

Könnte mir dazu bitte jemand helfen ?

Gruß
Heinz

  

Betrifft: AW: Uf Textboxen rechnen von: hary
Geschrieben am: 05.01.2010 11:51:10

Hallo Heinz
sinngemaess so ? Wobei ich Textbox4 hinzugefuegt habe,da bei Dir eine Bezeichnung fehlt.

Private Sub CommandButton1_Click()
Select Case TextBox5.Value
 Case Is > 0: TextBox20 = TextBox2 - TextBox1
 Case Is = 0: TextBox20 = ((TextBox2 - TextBox4) - TextBox5) - TextBox3
 End Select
End Sub

Gruss hary


  

Betrifft: AW: Uf Textboxen rechnen von: Heinz H
Geschrieben am: 05.01.2010 12:16:01

Hallo Hary

Wiederum einen schönen Tag. Jetzt komme ich Gott sei Dank in die Zielgerade
Auch einen besonderen Dank an Dich .

Könnte man dies nicht auch ohne "Private Sub CommandButton1_Click() machen.
Also sobald in den Textboxen Zb. Montag ausgefüllt wurden,das das Ergebniss in der Textbox31 angezeigt wird ? Und die Summe in Textbox36 ?

Habe mal ein Beispiel hochgeladen. Die Formel steht in Zellen B96:G100

Könntest du mir eventuell für Montag ein Beispiel eingeben.

Gruß
Heinz



https://www.herber.de/bbs/user/66990.xls


  

Betrifft: AW: Uf Textboxen rechnen von: Heinz H
Geschrieben am: 05.01.2010 12:37:23

Hallo Hary

Habe deine Formel umgesetzt

Nur das Ergebniss kommt in " txtMoPauseBez " es sollte aber Textbox31 kommen.

Heinz


'Stunden Eintragen

Private Sub CommandButton1_Click()
Select Case TextBox31.Value
  Case Is > 0: txtMoPauseBez = txtMoAZbis - txtMoAZvon
  Case Is = 0: txtMoPauseBez = ((txtMoAZbis - txtMoAZvon) - txtMoPauseBez) - txtMoPause
  End Select
 
'=WENN(Pausebezahlt>0;Arbeitszeitende-Arbeitsbeginn;
'WENN(Pause bezahlt=0;Arbeitszeitende-Arbeitsbeginn)-Pausebezahlt)-Pause nicht bezahlt
 
 End Sub



  

Betrifft: AW: Uf Textboxen rechnen von: hary
Geschrieben am: 05.01.2010 14:55:10

Hallo Heinz
war gerade Geld ausgeben. Nu steig ich erstmal n cht mehr durch. Einmal schreibst Du:
.. das Ergebniss in der Textbox31 angezeigt wird ? Und die Summe in Textbox36 ?......
das anderemal:
Nur das Ergebniss kommt in " txtMoPauseBez " es sollte aber Textbox31 kommen.
Muss mir Deine mappe noch anschauen,dauert aber, muss noch mal los. Deshalb Frage offen.
Gruss hary


  

Betrifft: AW: Uf Textboxen rechnen von: Heinz H
Geschrieben am: 05.01.2010 15:08:24

Hallo Hary

Sorry für die Verwirrung. Habe jetzt den Textboxen alle Namentlich geändert.

Habe es jetzt fertig. NUR zB. 'Montag sollte das Ergebniss in "txtMoSumme"rauskommen.
Es kommt aber die Summe in "txtMoPauseBez"
Weiters sollte es nicht zwingend sein das eine Textbox mit Werten gefüllt wird.
Bis jetzt bekomme ich immer eine Fehlermeldung.

Habe die geänderte Datei hochgeladen.
Danke
Heinz




'Stunden Eintragen

Private Sub CommandButton1_Click()

'Montag

 Select Case txtMoSumme.Value
  Case Is > 0: txtMoPauseBez = txtMoAZbis - txtMoAZvon
  Case Is = 0: txtMoPauseBez = ((txtMoAZbis - txtMoAZvon) - txtMoPauseBez) - txtMoPause
  End Select
End If
'Dienstag
Select Case txtDiSumme.Value
  Case Is > 0: txtDiPauseBez = txtDiAZbis - txtDiAZvon
  Case Is = 0: txtDiPauseBez = ((txtDiAZbis - txtDiAZvon) - txtDiPauseBez) - txtDiPause
  End Select

'Mittwoch
Select Case txtMiSumme.Value
  Case Is > 0: txtMiPauseBez = txtMiAZbis - txtMiAZvon
  Case Is = 0: txtMiPauseBez = ((txtMiAZbis - txtMiAZvon) - txtMiPauseBez) - txtMiPause
  End Select

'Donnerstag
Select Case txtDoSumme.Value
  Case Is > 0: txtDoPauseBez = txtDoAZbis - txtDoAZvon
  Case Is = 0: txtDoPauseBez = ((txtDoAZbis - txtDoAZvon) - txtDoPauseBez) - txtDoPause
  End Select

'Freitag
Select Case txtDoSumme.Value
  Case Is > 0: txtFrPauseBez = txtFrAZbis - txtFrAZvon
  Case Is = 0: txtFrPauseBez = ((txtFrAZbis - txtFrAZvon) - txtFrPauseBez) - txtFrPause
  End Select


'=WENN(Pausebezahlt>0;Arbeitszeitende-Arbeitsbeginn;
'WENN(Pause bezahlt=0;Arbeitszeitende-Arbeitsbeginn)-Pausebezahlt)-Pause nicht bezahlt
 
 End Sub
https://www.herber.de/bbs/user/66992.xls


  

Betrifft: AW: Uf Textboxen rechnen von: hary
Geschrieben am: 05.01.2010 16:21:37

Hallo Heinz
Wird dann mit select Case nicht gehen. Geht, glaube ich, nur ueber das Exit Ereigniss der textboxen.
Wird bei Eintrag und verlassen der Boxen ausgefuehrt. Ohne Button.
Probier mal dies ist aber nur fuer Montag fertig:
https://www.herber.de/bbs/user/66993.xls
Gruss hary


  

Betrifft: AW: Uf Textboxen rechnen von: Heinz H
Geschrieben am: 05.01.2010 16:31:04

Hallo Hary

Erstmals ein großes DANKE !!

Werde es erweitern.


Noch einen schönen abend

Gruß
Heinz


  

Betrifft: AW: Uf Textboxen rechnen von: Heinz H
Geschrieben am: 06.01.2010 09:32:53

Hallo Hary

In Textbox "txtsumme" wird die Summe leider nicht zusammengezählt,nur nebeneinander geschrieben.

Habe selbst schon vieles getestet aber leider ohne Erfolg.

Könntest du mir bitte nochmals weiterhelfen ?

Gruß
Heinz

https://www.herber.de/bbs/user/67000.xls


  

Betrifft: AW: Uf Textboxen rechnen von: Heinz H
Geschrieben am: 06.01.2010 10:44:02

Die Frage auf offen stellen.
Heinz


  

Betrifft: AW: Uf Textboxen rechnen von: Tino
Geschrieben am: 06.01.2010 11:49:46

Hallo,
habe mir Deine Datei jetzt nicht angesehen, aber wenn der Text nebeneinander gereiht wird,
wird der Wert in Deiner Textbox nicht als Zahl sondern als Text interpretiert, also die Zahlen mit CDbl(Textbox) in eine Zahl umwandeln und diese addieren.

z. Bsp. so
txtsumme = CDbl(Textbox1) + CDbl(Textbox2)

Gruß Tino


  

Betrifft: AW: Meine liebe Not mit UF Format von: Heinz H
Geschrieben am: 07.01.2010 07:32:15

Guten morgen

Habe den Tip von Tino beherzigt,

txtsumme = CDbl(Textbox1) + CDbl(Textbox2)
ABER jetzt bekomme ich immer einen Fehler beim berechnen.
Was mache ich bitte falsch ?

Gruß
Heinz


'Montag txtMoAZbis Stunden zählen & in das richtige Format setzen.
Private Sub txtMoAZbis_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Cancel = FehlerZeitDezimal(sTextboxname:="txtMoAZbis", LeerZulaessig:=True)
If txtMoAZbis = "" Then Exit Sub
txtMoSumme = txtMoAZbis - txtMoAZvon
'txtSumme = txtMoSumme + txtDiSumme + txtMiSumme + txtDoSumme + txtFrSumme
txtSumme = CDbl(txtMoSumme) + CDbl(txtDiSumme) + CDbl(txtMiSumme) + CDbl(txtDoSumme) + CDbl(txtFrSumme)
End Sub


  

Betrifft: AW: Meine liebe Not mit UF Format von: hary
Geschrieben am: 07.01.2010 08:19:14

Hallo Heinz

war mein Fehler. Fehler meldung kam weil in den anderen Summen Textboxen nichts drin war. Jetzt gehts.

https://www.herber.de/bbs/user/67028.xls


gruss Hary


  

Betrifft: AW: Meine liebe Not mit UF Format von: Heinz H
Geschrieben am: 07.01.2010 08:25:56

Guten morgen - Hary

Ich bin einfach nur mehr HAPPY .


Recht herzlichen Dank.

Gruß
Heinz


  

Betrifft: AW: Meine liebe Not mit UF Format von: Heinz H
Geschrieben am: 07.01.2010 10:38:22

Hallo

Habe gerade bemerkt, Wenn nicht alle Tage ausgefüllt werden,dann bekomme ich wieder eine Fehlermeldung.

Zb. Bei einer 4 Tage Woche, am Montag wird keine Arbeitszeit eingetragen.

Gruß
Heinz



'Dienstag txtDiAZbis Stunden zählen & in das richtige Format setzen.

Private Sub txtDiAZbis_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Cancel = FehlerZeitDezimal(sTextboxname:="txtDiAZbis", LeerZulaessig:=True)
If txtDiAZbis = "" Then Exit Sub
txtDiSumme = txtDiAZbis - txtDiAZvon
txtSumme = CDbl(txtMoSumme) + CDbl(txtDiSumme)
End Sub



  

Betrifft: AW: Meine liebe Not mit UF Format von: Tino
Geschrieben am: 07.01.2010 10:51:15

Hallo,
baue Dir eine eigene Funktion und berechne über diese Deine Summe.

Beispiel:

Private Function SummeTextbox(ParamArray varTextBox() As Variant) As String
Dim i As Integer
Dim ZWSumme As Double

For i = Lbound(varTextBox) To Ubound(varTextBox)
    If IsNumeric(varTextBox(i)) Then ZWSumme = ZWSumme + CDbl(varTextBox(i))
Next i

SummeTextbox = CStr(ZWSumme)

End Function

Private Sub CommandButton1_Click()
    'in diesem Aufruf beliebig Deine Textboxen angeben 
    txtsumme = SummeTextbox(TextBox1.Text, TextBox2.Text)
End Sub
Gruß Tino


  

Betrifft: AW: Meine liebe Not mit UF Format von: Heinz H
Geschrieben am: 07.01.2010 11:20:12

Hallo Tino

Habe gerade deinen Code umgesetzt.
Funktioniert WUNDERBAR.
Danke

Nur könnte man das mit "CommandButton1_Click()" nicht anders umgehen.

So das ich gleich die Gesamtstunden in "txtSumme" sehe ?

Danke & Gruß
Heinz


Private Sub CommandButton1_Click()
    'in diesem Aufruf beliebig Deine Textboxen angeben

txtSumme = SummeTextbox(txtMoSumme.Text, txtDiSumme.Text, txtMiSumme.Text, txtDoSumme.Text,  _
txtFrSumme.Text)
End Sub



  

Betrifft: AW: Meine liebe Not mit UF Format von: Tino
Geschrieben am: 07.01.2010 11:46:32

Hallo,
schreibe den aufruf für alle Textboxen

Beispiel:

Private Sub txtMoSumme_Change()
txtSumme = SummeTextbox(txtMoSumme.Text, txtDiSumme.Text, txtMiSumme.Text, txtDoSumme.Text,  _
txtFrSumme.Text)
End Sub

Private Sub txtDiSumme_Change()
txtSumme = SummeTextbox(txtMoSumme.Text, txtDiSumme.Text, txtMiSumme.Text, txtDoSumme.Text,  _
txtFrSumme.Text)
End Sub
usw...

Gruß Tino


  

Betrifft: AW: Meine liebe Not mit UF Format von: Heinz H
Geschrieben am: 07.01.2010 11:58:47

Hallo Tino

JAAAAAA genau soooo.

Recht herzlichen D A N K.

Gruß
Heinz


Beiträge aus den Excel-Beispielen zum Thema "Uf Textboxen rechnen"