636 Aufrufe
Gefragt in Tabellenkalkulation von

Hallo guten Tag kann mir jemand helfen, ich möchte aus einer Excel “Tabelle1“ sobald ich in der Zelle (E11) den TEXT Kunde 1 eintrage der automatisch als Text im Formularsteuerelement erscheint.

Vielen Dank.  

15 Antworten

0 Punkte
Beantwortet von computerschrat Profi (32.2k Punkte)

Hallo janina,

versuch es mal mit

CommandButton1.Caption = Range("E11")

wobei du die Bezeichnung des Steuerelements natürlich anpassen musst.

Gruß computerschrat

0 Punkte
Beantwortet von jelena Mitglied (750 Punkte)

Hallo computerschrat, ich möchte ein Formularsteuerelement z:B. (Formularfeld 1) und kein Forms.CommandButton.1 Schaltknopf  verwenden da ich das Formularsteuerelement nach meinen vorstellungen (Automatische größe, Farbe, usw.) herrichten kann. Sollte es möglich sein Bitte den kompletten vba code, ich kenne mich mit dieser materie nicht so aus. Danke

0 Punkte
Beantwortet von computerschrat Profi (32.2k Punkte)
Hallo jelena,

ich habe mit diesen Steuerelementen  bisher nicht gearbeitet und kenne mich damit nicht wirklich aus. Ich gehe aber mal davon aus, dass auch das Formularsteuerelement eine Eigenschaft CAPTION hat, die du ganz nach Wunsch verändern kannst.

Gruß computerschrat
+1 Punkt
Beantwortet von flupo Profi (17.8k Punkte)
Ich habe mal ein Testmakro aufgezeichnet und ausgewertet.

Mit

    ActiveSheet.Shapes.Range(Array("Button 1")).Select
    Selection.Characters.Text = Range("E11").Value

Sollte es klappen. Ggf. muss der Name des Buttons noch angepasst werden.

Gruß Flupo
0 Punkte
Beantwortet von jelena Mitglied (750 Punkte)

Hallo Flupo, vielen Dank ein guter anfang dennoch sollte sobald ich in der Zelle (E11) den TEXT Kunde 1 eintrage der automatisch als Text im Formularsteuerelement erscheinen und sobald ich auf den Button draufklicke sollte die Zelle (E11) angespungen werden.

Bitte den code mit Anfang und Ende.

?????

ActiveSheet.Shapes.Range(Array("Textfeld 1")).Select
Selection.Characters.Text = Range("E11").Value

????

+1 Punkt
Beantwortet von flupo Profi (17.8k Punkte)

Bissel mitdenken musst du schon. cool

Lies mal hier: https://docs.microsoft.com/de-de/office/troubleshoot/excel/run-macro-cells-change

Den KeyCells-Bereich musst du dann auf "E11" ändern und die MsgBox ersetzt du durch die Zeilen oben.

Gruß Flupo

0 Punkte
Beantwortet von jelena Mitglied (750 Punkte)
wieder angezeigt von jelena
Hallo Flupo Danke das passt, hätte da noch eine frage, die "Tabelle 1" ist Schreibgeschützt.
+1 Punkt
Beantwortet von m-o Profi (22.8k Punkte)

Hallo,

den Blattschutz kannst du aufheben mit

ActiveSheet.Unprotect

oder falls du ein Passwort vergeben hast

ActiveSheet.Unprotect "Passwort"

Mit

ActiveSheet.Protect "Passwort"

setzt du den Blattschutz wieder. Statt Passwort musst du natürlich dein vergebenes Passwort eintragen.

Dein Code sollte so aussehen:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("E11")) Is Nothing Then
   With ActiveSheet
     .Unprotect
     .Shapes.Range(Array("Button 1")).Select
      Selection.Characters.Text = Range("E11").Value
     .Protect
   End With
End If

End Sub

Gruß

M.O.

0 Punkte
Beantwortet von jelena Mitglied (750 Punkte)
Bearbeitet von jelena

Hallo M.O. Vielen Dank

Wie sollte es aussehen wenn ich mehrere

If Not Intersect(Target, Range("E11")) Is Nothing Then

und
.Shapes.Range(Array("Textfeld 1")).Select
untereinander habe.

Besteht auch die möglichkeit die Zellenfarbe z.B. aus (D11)
bei einer Bedingten Formatierung zu übernehmen. Wenn ja dann wie.
Danke
+1 Punkt
Beantwortet von m-o Profi (22.8k Punkte)

Hallo,

am einfachsten kannst du bei mehreren Zellen so lösen:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("D11,E11")) Is Nothing Then
   With ActiveSheet
     .Unprotect
     If Target = Range("D11") Then
        .Shapes.Range(Array("Textfeld 1")).Select
     End If
     If Target = Range("E11") Then
        .Shapes.Range(Array("Button 2")).Select
         Selection.Characters.Text = Range("E11").Value
     End If
     .Protect
   End With
End If

End Sub

Aufgrund einer bedingten Formatierung kannst du keine Farbe zuweisen. Liest du per VBA die Hintergrundfarbe einer Zelle mit bedingter Formatierung aus, dann ist das immer weiß.

Gruß

M.O.

...