Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1296to1300
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Command Buttons

Command Buttons
05.02.2013 10:58:45
Mirko
Hallo zusammen,
ich habe eine Datei mit Command Button erstellt -- als Startseite (in EXCEl 2007) die auf weitere Tabellenblätter verzweigen und zurück.
Nun mein Problem: wenn ich diese datei auf 2003 Speicher -- damit andere Rechner die nur 2003 haben dies nutzen können, verschieben sich die Buttons alle wenn man mit der Datei arbeitet -- wo liegt mein Problem, kann mir jemand helfen?
DANKE und Gruss Mirko

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Command Buttons
05.02.2013 11:05:59
Klaus
Hallo Mirko,
die Buttons sind sicherlich schon "unabhängig von Zellposition" usw.
Dass Buttons (und generell controls) sich unerwünscht verschieben, passiert leider nicht selten und kann duzende Ursachen haben.
Als Lösungsansatz mal ein Makro, dass einen Button exakt in eine Zelle positioniert:
Sub Tester()
Dim rng As Range
Set rng = ActiveSheet.Range("B3")
With ActiveSheet.OLEObjects("CommandButton1")
.Top = rng.Top
.Left = rng.Left
.Width = rng.Width
.Height = rng.RowHeight
End With
End Sub
Wenn du die width und height auskommentierst, wird der Button nur verschoben aber nicht skaliert. Mach dir ein "on Open" Makro draus, dass die Buttons dahin bringt wo sie sein sollen.
Grüße,
Klaus M.vdT.

Anzeige
AW: Command Buttons
05.02.2013 11:21:16
Mirko
Hallo Klaus,
muss ich den Code in jeden einzelnen Button schreiben?
Zitat: Wenn du die width und height auskommentierst -- heisst auf "0" setzen?
und wenn ich mehrere Command Button 1 habe?
DANKE und Gruss Mirko

AW: Command Buttons
05.02.2013 11:33:19
Klaus
Hallo Mirko,
muss ich den Code in jeden einzelnen Button schreiben?
Nein, nicht IN den Button. In die Workbook-Open
Zitat: Wenn du die width und height auskommentierst -- heisst auf "0" setzen?
NEEEEEEIN! Auskommentieren heisst: ein Hochkomma ' davor setzen. Die Zeile wird dann grün und im Code nicht mehr beachtet.
und wenn ich mehrere Command Button 1 habe?
Dann ist dein Tabellenaufbau mies.
Ich seh grad dein VBA-Level ... ich mach mal besser ein Beispiel:
Du willst alle Buttons im Blatt "Tabelle3" zurück setzen. Die Zellpositionen der Buttons sind bekannt. Es gibt 4 Buttons, benannt CommandButton1 bis 3 sowie CommandButtonHalloWelt
Sub ButtonsZurueck()
Dim rng As Range
With Sheets("Tabelle3")
Set rng = .Range("A1")
With .OLEObjects("CommandButton1")
.Top = rng.Top
.Left = rng.Left
End With
Set rng = .Range("C1")
With .OLEObjects("CommandButton2")
.Top = rng.Top
.Left = rng.Left
End With
Set rng = .Range("Z7")
With .OLEObjects("CommandButton3")
.Top = rng.Top
.Left = rng.Left
End With
Set rng = .Range("Y15")
With .OLEObjects("CommandButtonHalloWelt")
.Top = rng.Top
.Left = rng.Left
End With
End With
End Sub
Den Code einmal ausgeführt, und alle Buttons im Tabelle3 sind da wo sie hingehören. Den Code einfach Copy&Paste und immer das richtige "Range" angeben für jeden Button.
Anmerkung1:
Das ganze ist nicht optimiert oder elegant, aber ich hoffe es ist so verständlich. Optimieren kann man immer noch, nachdem man verstanden hat :-)
Anmerkung2:
Du solltest dir dringends (!!!) angewöhnen, allen Buttons eindeutige Namen zu geben. Überleg dir eine Konvention dafür. Wenn du zB einen Button hast der Zeilen nach Datums ausblendet, nenn ihn "CmB_ZeilenDatumAusblenden". Dann weisst du auch in 10 Jahren noch, wofür der Button eigentlich gut ist.
Grüße,
Klaus M.vdT.

Anzeige
AW: Command Buttons
05.02.2013 13:54:01
Mirko
Hallo Klaus,
vielen Dank, ich werde alles beherzigen und versuchen das ich es hinbekomme.
Theoretisch habe ich deine Ausführungen verstanden -- das ich es praktisch umgesetzt bekomme hoffe ich natürlich.
Ich werde deine Ratschläge beherzigen und noch versuchen zu retten was noch zu retten ist.
Vielen Danke erstmal
ich schreibe wenn ich fertig bin ob ich es hinbekommen habe
VG Mirko

AW: Command Buttons
06.02.2013 07:28:37
Mirko
Hallo Klaus,
funktioniert super alles schick und nichts verschiebt sich mehr, aber bei sehr vielen Buttons ein riesen Aufwand duch copy&paste aber ich ahbe es hinbekommen.
Vielen Dank für deine Hilfe
Vg Mirko

Anzeige
Danke für die Rückmeldung! mwT.
06.02.2013 08:33:54
Klaus
Hi Mirko,
danke für die Rückmeldung!
Ja, ist ein Riesenaufwand - wie ich schrieb, der Code ist nicht optimiert sondern verständlich gehalten. Wenn man es für jeden Button "sofort" macht, ist es easy ... aber 100 Buttons ohne Namen nachzupflegen war bestimmt die Hölle :-)
Dafür hast du es selbst hinbekommen, ist doch super!
Grüße,
Klaus M.vdT.

AW: Command Buttons
06.02.2013 08:57:00
Mirko
Hallo Klaus,
sorry musste gerade feststellen das es doch nicht funktioniert --
vielleicht mal zum Hintergrund: die Buttons verzweigen auf andere Tabellenblätter - dort kann ich per Klick auf ein Feld etwas in die Zwischenablage legen -- und dies ist glaube ich der Punkt -- weil wenn ich die Daten aus der Zwischenablage genommen habe und irgendwo eingefügt habe - danach sind die Buttons alle wieder verschoben.
Schade -- aber die Lösung war doch nicht so wie es sein sollte oder habe ich etwas verkehrt gemacht
VG Mirko

Anzeige
Code?
06.02.2013 09:01:45
Klaus
Hallo Mirko,
ohne deinen Code zu sehen kann dir da niemand helfen.
Grüße,
Klaus M.vdT.

AW: Code?
06.02.2013 09:29:20
Mirko
Hallo Klaus,
kann es auch sein ds vielleicht ein Add Inn bei der Version 97-2003 fehlt, da dieser Fehler nur dort auftritt, in der Version 2007 wo dies erstellt wurde tritt dieser Fehelr nicht auf.
VG Mirko
PS.: welchen Code beötigst du zum schauen?

AW: Code?
06.02.2013 09:55:49
Klaus
Hallo Mirko,
PS.: welchen Code beötigst du zum schauen?
Na, den der den Fehler verursacht!
Grüße,
Klaus M.vdT.

AW: Code?
06.02.2013 10:24:51
Mirko
wenn ich das wüsste?
Der Code für das zwischenspeichern lautet:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 10 Or Target.Column = 21 Then
Set data = New DataObject
If ActiveCell.Value = "KS" Then
data.SetText Date & " " & ActiveSheet.Cells(Target.Row - 3, Target.Column - 3).Value
Else
data.SetText ActiveSheet.Cells(Target.Row, Target.Column - 9).Value & Chr(10) _
& Tabelle2.Range("E2").Value & ", Team " & _
Tabelle2.Range("C2").Value & " - " & _
Tabelle2.Range("D2").Value & ", " & _
Tabelle2.Range("F2").Value & ", " & Date
End If
data.PutInClipboard
End If
End Sub
Diesen Code habe ich damit per Klick alle Blätter geschützt werden und wieder aufgehoben werden können
Sub Schutz_Ein_Aus()
End Sub
Private Sub CommandButton1_Click()
Dim ws As Worksheet, PW$
PW = InputBox("Bitte das Passwort eingeben!", "PASSWORT")
If PW = "" Then Exit Sub
For Each ws In ThisWorkbook.Worksheets
If ws.Name  "Tabelle2" Then
If ws.ProtectContents = True Then
ws.Unprotect PW
Else
ws.Protect PW
End If
End If
Next ws
End Sub
Hoffe du kannst mir helfen - dies ist nervig wenn sich die Buttons alle verschieben.
Wäre dies mit einer Userform besser?
VG Mirko

Anzeige
AW: Code?
06.02.2013 10:34:47
Klaus
Du hast dir doch einen Code zusammen kopiert, der die Buttons wieder dahin schiebt wo sie hinsollen.
Dieser steht in einem Modul, richtig? Ruf den doch einfach auf, zB bei jedem worksheet_activate?
Grüße,
Klaus M.vdT.

AW: Code?
06.02.2013 11:06:55
Mirko
Hallo Klaus,
nein hatte ich nicht im Modul -- habe ich gemacht scheint wohl hinzu hauen.
wie mache ich dies: Ruf den doch einfach auf, zB bei jedem worksheet_activate?
muss ich dies auch per Makro machen oder erkennt Excel dies automatisch ds dort was im Modul ist?
Sorry aber ich bin ganz blutiger Anfänger und versuche mir das so irgenwie anzueignen / probieren usw..
Vielen Dank für deine geduld
VG Mirko
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige