online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Chris-1988 vom 05.10.2022, 10:28 Options

Lösung

Excel: Button nur für bestimmte Personen sichtbar machen

Guten Morgen,
ich habe in meiner Excel-Datei einen Button der ein Makro ausführt. Gibt es eine Möglichkeit diesen Button unsichtbar zu machen, sodass nur bestimmte Leuten den Button sehen und betätigen können?

Greetz Chris


Antwort schreiben

Antwort 1 von Hajo_Zi vom 05.10.2022, 12:30 Options

Hallo Chris,

Ja die möglichkeit gibbt es.
Environ("Username")="Chris"
Ist nur die Frage was für Button.

Gruß Hajo

Antwort 2 von Chris-1988 vom 05.10.2022, 13:06 Options

Hi Hajo,
der Button ist eine Befehlsschaltfläche. Wenn man ihn klickt werden Daten aus dieser Datei in eine andere kopiert.
Hatte das mal selber ausprobiert, jedoch irgendwelche Fehler dabei gemacht. Oder vllt war mein Gedanke bzw der Code einfach nur falsch.

Private Sub CommandButton1_Click()
 
If UserName.R885897 = False Then
Button.Enable = False
 
End If


hatte davor diese Makro in ein neues Modul eingefügt

   Declare Function GetUserName Lib "advapi32.dll" _
      Alias "GetUserNameA" (ByVal lpBuffer As String, _
      nSize As Long) As Long

   Sub UserName()
      Dim B As String * 100
      Dim L As Long 
      L = 100 
      GetUserName B, L
      MsgBox Left(B, L - 1)
   End Sub


R885897 ist mein Benutzername. Ich weiss jetzt leider nicht wie ich es richtig in den Code einsetze.

Greetz Chris

Antwort 3 von Hajo_Zi vom 05.10.2022, 13:12 OptionsLösung

Lösung
Hallo Chris,

Excel hat 2 unterschiedliche Button.
Ich hätte es unter DieseArbeitsmappe gemacht.


Private Sub Workbook_Open()
    Worksheets("Tabelle3").CommandButton1.Visible = Environ("Username") = "Hajo_Zi"
End Sub


Gruß Hajo

Antwort 4 von Chris-1988 vom 05.10.2022, 13:52 Options

Quasi jetzt dieses Modul
Declare Function GetUserName Lib "advapi32.dll" _
      Alias "GetUserNameA" (ByVal lpBuffer As String, _
      nSize As Long) As Long

   Sub UserName()
      Dim B As String * 100
      Dim L As Long 
      L = 100 
      GetUserName B, L
      MsgBox Left(B, L - 1)
   End Sub


durch das



Private Sub Workbook_Open()
    Worksheets("Tabelle3").CommandButton1.Visible = Environ("Username") = "R885897"
End Sub


ersetzen?
Sry steh grad etwas aufm Schlau ;)


Der Anfang meines eigtl Codes sieht ja eigtl so aus

Private Sub CommandButton1_Click()
 
  
    Dim lngLast As Long
    
    If Trim(Range("G61").Value) = "" Or Trim(Range("I77").Value) = "" Then    'Zellen für Pflichtfelder <Datum> und <Aufmaß-Nr>
    MsgBox "Die Zellen 'Datum' und 'Aufmaß-Nr' müssen ausgefüllt werden.", vbOKOnly, "Fehler"    'Message Box
    
Else
    
    
    'Regionalzentrum
        ThisWorkbook.Worksheets("Aufmaßanfrage").Range("L15").Copy
        lngLast = Workbooks("Aufmassdatei.xls").Worksheets("Aufmassdatei").Cells(Rows.Count, "A").End(xlUp).Row + 1
        Workbooks("Aufmassdatei.xls").Worksheets("Aufmassdatei").Range("Q" & lngLast).PasteSpecial Paste:=xlPasteValues


Muss ich da nichts mehr dran verändern?
Übrigens vielen Dank für die schnelle Hilfe Hajo :)

Greetz Chris

Antwort 5 von Chris-1988 vom 06.10.2022, 10:57 Options

Problem gelöst mit deinem Code Hajo ;)

Danke nochmal.

Greetz Chris

Ähnliche Themen

Excel, bestimmte Zahlen erweitern!?!
atomictunes  29.09.2009 - 354 Hits - 7 Antworten

Excel: bestimmte Zellen nicht ausdrucken
Mikoop  21.03.2010 - 190 Hits - 8 Antworten

Senden an Button in Excel 2003 erstellen
DirkausPY  17.08.2010 - 151 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026