Clever-Excel-Forum

Normale Version: VBA nur mit Variablen rechnen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Code:
Private Sub CommandButton1_Click()
  textbox4.text=TextBox3*TextBox2*2*abs(CheckBox1)*12
End Sub
Hi,

(03.06.2016, 11:34)snb schrieb: [ -> ]  textbox4.text=TextBox3*TextBox2*2*abs(CheckBox1)*12

warum steht da (auch in den vorigen Makros) eigentlich .text, reicht es nicht, nur
TextBox4 = TextBox3*TextBox2*2*abs(CheckBox1)*12
zu schreiben?
Ja klar, Ralf, ist der default.
"Sauber" im Sinne "ordentlicher" Programmierung ist dies aber nicht gerade.
(und eigentlich gehört sogar noch Me. davor)

(und jetzt warte ich auf das vehemente Veto von snb)
:19:

Gruß Ralf
Hi Ralf,

(03.06.2016, 10:42)RPP63 schrieb: [ -> ]Um den Text durch Doppelklick in die Zwischenablage zu befördern, gibt es die .PutInClipboard-Methode eines DataObject.
Du holst es mittels .GetText

das Makro macht bei mir gar nichts.
Ich habe mal ein Beispiel erstellt.
Lade die UserForm, schreibe etwas in die Textbox und klicke doppelt oder rechts  :21: hinein.
Der Code:

Dialog UserForm1
Option Explicit 

Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Call InClipboard(TextBox1)
Cancel = True
End Sub

Private Sub TextBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Button = 2 Then Call InClipboard(TextBox1)
End Sub

Sub InClipboard(tx)
Dim oData As New DataObject
With oData
  .SetText tx
  .PutInClipboard
  MsgBox "Der Text: " & .GetText & " befindet sich nun in der Zwischenablage!", Buttons:=vbYesNoCancel
End With
End Sub
TypNameEigenschaften
TextBoxTextBox1
Height:18
Left:66
TabIndex:0
Text:
Top:36
Width:72

Datei im Anhang.

Gruß Ralf
Hi Ralf,

(03.06.2016, 12:24)RPP63 schrieb: [ -> ]Datei im Anhang.

in der Datei geht es, in der Provisions-Datei mit Userform (Button LV-Rechner) nicht:
Dialog UserForm1
Option Explicit 
 
Private Sub CommandButton1_Click() 
   If IsNumeric(TextBox3.Text) And IsNumeric(TextBox2.Text) Then 
      On Error GoTo errmsg 
      Dim Laufzeit As Integer 
      Dim Monatsbeitrag As Integer 
      Laufzeit = TextBox3.Text 
      Monatsbeitrag = TextBox2.Text 
       
      If CheckBox1 = True Then 
         TextBox4.Text = Laufzeit * Monatsbeitrag * 12 * 2 
      Else 
         TextBox4.Text = Laufzeit * Monatsbeitrag * 12 
      End If 
   End If 
    
   Exit Sub 
errmsg: 
   MsgBox Err.Number & " " & Err.Description 
    
End Sub 
 
Private Sub CommandButton3_Click() 
   Unload Me 
End Sub 
 
Private Sub CommandButton4_Click() 
   Dim objControl As Control 
    
   For Each objControl In Controls 
      Select Case TypeName(objControl) 
      Case "TextBox" 
         objControl.Text = "" 
      Case "ComboBox" 
         objControl.ListIndex = -1 
      Case "CheckBox" 
         objControl.Value = False 
      Case "OptionButton" 
         objControl.Value = False 
      End Select 
   Next 
End Sub 
 
Private Sub TextBox4_DblClick(ByVal Cancel As MSForms.ReturnBoolean) 
   Call InClipboard(TextBox4) 
   Cancel = True 
End Sub 
 
Private Sub TextBox4_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) 
   If Button = 2 Then Call InClipboard(TextBox4) 
End Sub 
 
Sub InClipboard(tx) 
   Dim oData As New DataObject 
   With oData 
      .SetText TextBox4.Text 
      .PutInClipboard 
      MsgBox "Der Text: " & .GetText & " befindet sich nun in der Zwischenablage!" 
   End With 
End Sub 
 
TypNameEigenschaften
CheckBoxCheckBox1
Caption:Risiko-LV
Height:18
Left:108
Top:66
Width:90
CommandButtonCommandButton3
Caption:abbrechen
Height:30
Left:18
TabIndex:7
Top:144
Width:72
CommandButtonCommandButton1
Caption:ausrechnen
Height:24
Left:228
TabIndex:8
Top:96
Width:84
CommandButtonCommandButton4
Caption:löschen
Height:30
Left:240
TabIndex:9
Top:144
Width:72
LabelLabel1
Caption:Laufzeit :
Height:18
Left:18
TabIndex:0
Top:12
Width :84
LabelLabel2
Caption:Monatsbeitrag :
Height:18
Left:18
Top:72
Width :84
LabelLabel3
Caption:Brutto Beitrag :
Height:18
Left:18
TabIndex:5
Top:36
Width :84
TextBoxTextBox3
Height:24
Left:108
Text:
Top:6
Width:204
TextBoxTextBox2
Height:24
Left:108
TabIndex:3
Text:
Top:30
Width:204
TextBoxTextBox4
Enabled:Falsch
Height:24
Left:108
TabIndex:6
Text:
Top:96
Width:114

[attachment=5506]
So ganz verstehe ich ohnehin noch nicht, was die Zwischenablage hier überhaupt soll.
Normalerweise nimmt man ja eher eine Public-Variable im Modulkopf.

Mal sehen, was der TE dazu schreiben wird.

Gruß Ralf
Ich bin kein Zensor:

Möchte nur sagen:


Code:
Private Sub CommandButton1_Click()
   If IsNumeric(TextBox2 & TextBox3) Then TextBox4 = TextBox2 * TextBox3 * 12 * (1 - CheckBox1)
End Sub
Seiten: 1 2