Registriert seit: 04.05.2016
Version(en): 2010
Hallo zusammen,
ich habe mal wieder eine frage zu den Checkboxen. Ich möchte wenn ich die Checkbox in der jeweiligen Zeile aktiviert habe, dass als bsp in Zelle A5 steht "Storno" in roter schrift und fett.
Sub storno2(Adr As String, An As Integer) RR = Split(Adr, "$")(2) Debug.Print Adr, An, RR If An = 1 Then Cells(RR, "G") = "STORNO" Else Cells(RR, "G") = "" End If End Sub
wie lautet den der quelltext hierzu ?:)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
02.01.2017, 18:56
(Dieser Beitrag wurde zuletzt bearbeitet: 02.01.2017, 18:57 von schauan.)
Hallöchen,
ich vermute jetzt mal, dass Deinem Code eine Adresse aus der Zeile übergeben wird, wo die Checkbox steht. In dem Fall brauchst Du nur die "G" durch "A" zu ersetzen. Die Farbe und Fett bekommst Du mit Hilfe der bedingten Formatierung hin.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
02.01.2017, 19:22
(Dieser Beitrag wurde zuletzt bearbeitet: 02.01.2017, 19:22 von RPP63.)
Moin André! Zitat:Die Farbe und Fett bekommst Du mit Hilfe der bedingten Formatierung hin. Macht natürlich Sinn, die Schriftfarbe und den Schriftschnitt bei einem Leerstring zurückzusetzen. :21: :05: @hbboy: Du solltest mal den gesamten Code zeigen, am besten gleich die Datei. 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)
Registriert seit: 04.05.2016
Version(en): 2010
Hallo danke für eure Antworten.
Modul:
Sub storno() With ActiveSheet.CheckBoxes For i = 8 To 200 .Add(Cells(i, "P").Left, Cells(i, "P").Top, 0, 0).Select Selection.Caption = "" Selection.OnAction = "Tabelle1.Kontrollkästchen_Klicken3" 'im Kopf des sheets Next i End With End Sub
Sub storno2(Adr As String, An As Integer) RR = Split(Adr, "$")(2) Debug.Print Adr, An, RR If An = 1 Then Cells(RR, "G") = "STORNO" Else Cells(RR, "G") = "" End If End Sub
Hierzu habe ich eine Frage er setzt mit die Boxen immer ganz links hin wenn ich Sie erstelle, können sie auch mittig erstellt werden ?Falls ja wo muss ich die Änderung durchführen? Es soll nur dick und Rot sein wenn STORNO dort steht, sonst sind da immer Zahlen.
Sheet: Sub Kontrollkästchen_Klicken3() Dim shp As Shape Set shp = ActiveSheet.Shapes(Application.Caller) Debug.Print shp.Name, shp.ControlFormat.Value, shp.TopLeftCell.Address Call storno2(shp.TopLeftCell.Address, shp.ControlFormat.Value) End Sub
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
da steckt einfach nur etwas Mathe dahinter. Hier setzt Du die Position in die linken (Left) oberen (Top) Ecken. .Add(Cells(i, "P").Left, Cells(i, "P").Top, 0, 0).Select
Die Mitte einer Zelle bekommst Du über die Hälften von Width und Height, die Du dann zu Left und Top addieren musst. Für Left im Prinzip so: Cells(i, "P").Left + Cells(i, "P").Width / 2
Allerdings ist dann die linke Ecke in der Mitte der Zelle. Eventuell willst Du sie ja zentriert in einer Zelle?
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 04.05.2016
Version(en): 2010
(04.01.2017, 20:01)schauan schrieb: Haa stecktllöchen,
Allerdings ist dann die linke Ecke in der Mitte der Zelle. Eventuell willst Du sie ja zentriert in einer Zelle? vielen dank für die antwort ja genau, wenn es dafür einen Befehl geben würde wäre es perfekt.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen, das wäre dann im Prinzip so. Code: Sub Makro2() 'Checkbox in B2 mit Maßen von B2 erzeugen ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _ DisplayAsIcon:=False, Left:=Cells(2, 2).Left, Top:=Cells(2, 2).Top, Width:=Cells(2, 2).Width, Height:= _ Cells(2, 2).Height).Select 'Checkbox in B4 mit Breite 25 und Hoehe 10 erzeugen (Maße kleiner als Zelle festlegen!) ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _ DisplayAsIcon:=False, Left:=Cells(4, 2).Left, Top:=Cells(4, 2).Top, Width:=25, Height:=10).Select 'Checkbox zentrieren With ActiveSheet.Shapes("CheckBox2") 'Links = halbe Differenz zwischen Zell- und Checkboxbreite .Left = Cells(4, 2).Left + (Cells(4, 2).Width - .Width) / 2 'oben = halbe Differenz zwischen Zell- und Checkboxhoehe .Top = Cells(4, 2).Top + (Cells(4, 2).Height - .Height) / 2 End With End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 29.09.2015
Version(en): 2030,5
05.01.2017, 23:02
(Dieser Beitrag wurde zuletzt bearbeitet: 05.01.2017, 23:02 von snb.)
Code: Sub M_snb() With ActiveSheet.CheckBoxes Forj = 8 To 200 with .Add(Cells(j, "P").Left+Cells(j, "P").width/2, Cells(j, "P").Top, 0, 0) .Caption = "" .OnAction = "Tabelle1.Kontrollkästchen_Klicken3" end with Next End With End Sub
Aber..... Kennst du font: Webdings, value "a" (ist ähnlich zu einem Kontrollkästchen)
Registriert seit: 04.05.2016
Version(en): 2010
Ich habe es hinbekommen mit den Werten. Nun stehe ich vor folgendes Problem. Durch eine Auswahl werden in bestimmten Feldern Zahlen eingefügt, sobald ich meine Checkbox anklicke, soll dies auch auf 0 gesetzt werden, dies funktioniert auch, jedoch überschreibt der dann meine Formel mit 0 (Formel weg). Bekomme ich das irgendwie hin wenn ich auf die Checkbox klicke soll in einem Feld STORNO stehen in den in dennen eine 0 rein soll wird eine reingesetzt und wenn ich die Checkbox erneut aktiviere und den Hacken wieder rausnehme, dass dann der Urzustand mit den Zahlen wiederhergestellt wird ? (U.a. auch dass nicht meine Formel gelöscht wird). anbei erhaltet ihr meinen Code:
Sub storno() With ActiveSheet.CheckBoxes For i = 8 To 200 .Add(Cells(i, "P").Left, Cells(i, "P").Top, 0, 0).Select Selection.Caption = "" Selection.OnAction = "Tabelle1.Kontrollkästchen_Klicken3" 'im Kopf des sheets Next i End With End Sub
Sub storno2(Adr As String, An As Integer) RR = Split(Adr, "$")(2) Debug.Print Adr, An, RR If An = 1 Then Cells(RR, "G") = "STORNO" Cells(RR, "N") = "0" Cells(RR, "O") = "0" Cells(RR, "P") = "0" Else Cells(RR, "G") = "" Cells(RR, "N") = "" Cells(RR, "O") = "" Cells(RR, "P") = "" End If End Sub
Registriert seit: 29.09.2015
Version(en): 2030,5
Verzichte in VBA immer auf 'select' (sehe z.B. meine Code)
|