Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA nur mit Variablen rechnen
#11
Code:
Private Sub CommandButton1_Click()
  textbox4.text=TextBox3*TextBox2*2*abs(CheckBox1)*12
End Sub
Antworten Top
#12
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?
Antworten Top
#13
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#14
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.
Antworten Top
#15
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


Angehängte Dateien
.xlsm   Clipboard.xlsm (Größe: 21,1 KB / Downloads: 1)
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#16
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


.xlsb   Provision - Rabe V2.xlsb (Größe: 31,82 KB / Downloads: 3)
Antworten Top
#17
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#18
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste