Hallo Excelperten,
Ich habe eine Exceldatei gebastelt. In der Zeile 3 stehen die Namen (= den Usernamen) der Kollegen, die EIntragungen vornehmen dürfen/sollen.
So soll es im Bestenfall werden:
Alle Spalten mit Usernamen in Zeile 3 sollen grundsätzlich ausgeblendet sein.
Nur die Spalte des aktuellen Users soll eingeblendet werden.
Prinzipiell habe ich etwas ähnliches schonmal hinbekommen - aber irgendwie will das nicht so ganz funktionieren…
Hat da einer eine Idee?
Sollen wir jetzt raten, was da falsch ist? Okay. In Zeile 7 deines VBA ist die Zuweisung falsch.
Oder zeigst du uns deinen Ansatz?
Hi FLowerwomen,
irgendwie vergessen den Quellcode einzufügen…
Hier mein Code dafür:
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
With activesheet
.Unprotect („Hoffnung“)
.Range(„C:X“).Hide = True
.Protect („Hoffnung“)
End With
End Sub
Private Sub Workbook_Open()
Dim sp As Integer
activesheet.Unprotect („Hoffnung“)
On Error GoTo errorhdl
sp = 25
Do
If Cells(3, sp) = Application.UserName Then
activesheet.colums(sp).Hide = False
Exit Do
End If
Loop Until sp = 3
activesheet.Protect („Hoffnung“)
GoTo ausgang
Errorhandler:
MsgBox „Fehler in Sub Fehler0“ & vbCrLf & "Fehlernummer: " & Err.Number & vbCrLf & "Fehlerbeschreibung: " & Err.Description
ausgang:
End Sub
ExcelKaiser:
On Error GoTo errorhdl
Das passt nicht zu
ExcelKaiser:
Errorhandler:
Und Boah, Goto! wie wäre es mit einem Sub?
Die Schleife terminiert nicht. oben setzt du sp auf 25. Danach fasst du das nicht wieder an. Aber die Schleife endet nicht, bis sp=3 ist.
Ich hab die Woche schonmal einen ähnlichen Fall gehabt und mag es nicht nochmal schreiben. Das trifft alles auch auf dich zu.
Du solltest deinem Chef ganz dringend ein Buch über gute Programmierpraxis aus dem Kreuz leiern.
1 „Gefällt mir“
Hi Flowerwomen,
der zähler bei sp (also dass runtergezählt wird) hatte ich auch gesehen und bereits eingebaut.
Beim Öffnen wird die entsprechende Spalte nicht eingeblendet. Das Startmakro läuft ohne Fehler durch.
Mein Username ist korrekt auch in der 3. Spalte, dennoch bleibt die Spalte ausgeblendet.
Beim Schließen wirft er mich an folgender Stelle jetzt immer raus:
For i = 3 To 25
.colums(i).Hide
Next
ExcelKaiser:
Stelle jetzt immer raus:
Mit welcher Fehlermeldung?
Da fehlt was. Mit dem .colums(i).Hide
sagst du, dass Spalten versteckt werden sollen. Aber du sagst nicht, in welchem Blatt. Und ich glaube, da musst du auch ein true setzen.
Warum befragen wir nicht die offizielle Dokumentation?
https://msdn.microsoft.com/de-de/vba/excel-vba/articles/range-hidden-property-excel
For i = 3 To 25
Worksheets("Hoffnung").Columns(i).Hidden = True
Next
1 „Gefällt mir“
Hi,
habs - sorry! Habs heute scheinbar voll auf den Augen. zwei Rechtschreibfehler (colums anstatt columns und hide statt hidden)
läuft jetzt 1a. Trotz Allem vielen lieben Dank für die Hilfe.
Lieben Gruß
René
Ist ja toll, dass du da jetzt ganz allein draufgekommen bist obwohl ich dir das eine halbe Stunde eher schon mundgerecht geantwortet habe.
Und mit Herzchen hast du auch nicht um dich geworfen. Ich gehe jetzt 2 Tage in mein Taschentuch weinen.
3 „Gefällt mir“