826 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen,

ich hab da ein echt nerviges Problem und zwar geht es um Schaltflächen und Befehlsschaltflächen und habe da auch schon vieles im Netz gelesen aber eine richtige Antwort darauf noch nicht gefunden.

Egal welche Eigenschaften ich einer solchen Schaltfläche (Buttons) gebe also Zellabhängig oder unabhängig verschieben sich die Schalflächen, werden kleiner oder sind an einer ganz anderen Stelle.

Ich kann es noch nicht einmal reproduzieren da es ganz sporadisch auftritt. Als Beispiel: gestern Abend in die Datei ein paar Daten eingetippt und versendet Buttons waren alle da wo sie hingehören, heute morgen mach ich die Datei auf und die Buttons sind verschoben. Man arbeitet die ganze Woche damit und die Buttons bleiben alle dort wo sie hingehören.

Ich habe es jetzt schon mit Schaltflächen, Befehlsschaltflächen und auch mit Formen probiert. Ich habe eben Buttons die nur auf bestimmten PC sichtbar sind und auch Buttons die trotz richtigen PC nur bestimmte User sehen können, selbst ohne diese Einschränkungen gab es die Probleme mit solchen Buttons.

Welche Möglichkeiten gibt es denn da noch?

Gruß
energun222

13 Antworten

0 Punkte
Beantwortet von
Hi energun222 ^^

Das hab ich schon oft gelesen und keine perfekte lösung gefunden :-)

Einige Ideen!

Positioniere die Buttons bei jedem Start der Datei neu(openereigniss der Mappe)

oder

Nutze das Selectionereigniss einer Zelle
Schreib z.b. in eine Zelle "Start" nach click auf diese Zelle wird ein zuvor angegebenes Makro gestartet

Gruss Nighty
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo,

vermutlich verwendest du "Formularsteuerelemente", veruch's mal mit
"ActiveX-Steuerelementen", das sollte das Problem lösen.

Gruß
Rainer
0 Punkte
Beantwortet von flupo Profi (17.8k Punkte)
Ich hab auch schon öfter Formulare mit Buttons gebaut. Solche
Probleme hatte ich mit den ActiveX-Schaltflächen dabei nie.
Obendrein lassen sie sich auch besser bezüglich der Optik
konfigurieren.

Gruß Flupo
0 Punkte
Beantwortet von
Hallo,

@rainberg

ich hab ja schon beide probiert, bei beiden kommt eben dieser Fehler.

@Nighty

Nutze das Selectionereigniss einer Zelle
Schreib z.b. in eine Zelle "Start" nach click auf diese Zelle wird ein zuvor angegebenes Makro gestartet


Du meinst jetzt: klicke auf A1 und führe Makro aus? Ich hab sowas ähnliches schon in der original Arbeitsmappe nur mit so einem Change Ereigniss nur kann ich dann diese Zellen nicht einfach verstecken. Weil wenn ich die mappe versende soll eben nicht jeder dran rumdocktern können/dürfen.

Gruß
energun222
0 Punkte
Beantwortet von
Hi energun222 ^^

Zu dem Selectionsereigniss das Blatt schützen und im VbEd das Projekt schützen

Nach PC und User schutz der Tabelle aufheben!

Gruss Nighty
0 Punkte
Beantwortet von
Hallo nochmal :-)

ich habe es jetzt folgendermaßen gemacht.

in ein Modul:

Sub privat_makro1()

Dim BerechtigterPC()
BerechtigterPC = Array("Computer1", "Computer2", "Computer3", "Computer4", "Computer5", "CHEF-PC")

If Not IsError(Application.Match(Environ("COMPUTERNAME"), BerechtigterPC, 0)) Then
Call dynamischer_Druck 'HaWa_Druck
Else
MsgBox "Du hast leider keine Berechtigung! Klick OK", vbOKOnly, "Hallo" & Chr(32) & Environ("USERNAME")
End If
End Sub


und in die Tabelle:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
Call privat_makro1
Exit Sub
End If
End Sub


Man sieht natürlich die Felder aber ausführen geht eben nur mit Berechtigung es sei denn man führt das Makro eben über die Entwickler Tools aus. Die Makros hab ich im Netz gefunden aber ein bissl was konnte ich schon selbst dazu schustern auch wenn es nicht sehr viel war. :-)

Geht des eigentlich das man in dieser Mappe nur einen User dazu berechtigen kann die Makros über diese Tools ausführen zu lassen also das feld zu sperren ohne Makros zu deaktivieren?

Gruß
energun222
0 Punkte
Beantwortet von
Hi energun222 ^^

Schütze das Projekt im VbED und entschütze es nach User/PC Verzweigung

Gruss Nighty
0 Punkte
Beantwortet von
Hallo Nighty,

das VBA Projekt ist ja durch ein Passwort geschützt wer sich aber ein bissl mit Excel auskennt braucht doch nur die Entwickler Tools zu aktivieren und kann so über das Register Makro ein beliebiges Makro starten und das wollte ich gerne unterbinden.


Gruß
energun222
0 Punkte
Beantwortet von
Hi energun222 ^^

Das mit den Entwicklertools ist ja grob!
Wusste ich gar nicht!

Es besteht die Möglichkeit Menuepunkte zu entfernen,ich schau da mal übers Wüchenende rein

Gruss Nighty
0 Punkte
Beantwortet von
Hi,

wenn du das mit den Entwicklertools unterbinden willst, dann schreibe vor Sub dynamischer_Druck()
noch ein Private Damit taucht das Makro dann nicht mehr in der Liste der ausführbaren Makros auf.
Dann kannst du allerdings auch nicht mehr mit Call auf das andere Modul zugreifen sondern musst
Application.Run "dynamischer_Druck" (Hier als String anzugeben) verwenden, oder das Makro im gleichen
Tabellenmodul, wie das Selection Change-Ereignis hinterlegen.

Gruß Mr. K.
...