Zellen Eingabe sperren VBA?

Ansicht  - (Microsoft, Excel, Programmierung)

4 Antworten

Ich geh mal davon aus, dass da keine böswilligen Hacker am Werk sind, sondern einfach unbedarfte User.

Da die Leute ja dann in der Zelle links daneben was eintragen sollen, würde ich das so lösen

  • Sub Worksheet_selectionchange(Byval Target as range)
  • if (not intersect(Target, columns(4).cells) is nothing) And  (Not intersect(Target, columns(6).cells) is nothing) then target.offset(0, -1).select
  • end sub.

Das lässt die angewählte Zelle nach links "abgleiten"

Die doppelte Verneinung (not...is nothing) verhindert Fehler, wenn zB ein Diagramm oder Zeichenobjekt ausgewählt wäre. Weiß nicht, ob das hier überhaupt auftreten könnte. Kürzer wäre:

if Target.column = 4 or Target.column = 6 then target.offset(0, -1).select

Da es passieren kann, dass ängstliche User beim Öffnen die Makros ausserkraft setzen, musst Du noch sicherstellen, dass Makros zugelassen sind. So kannst Du zB das Blatt oder die Formelspalten beim Workbook.close oder auch nur beim Verlassen des Blattes  verbergen und nur per Makro wieder zur Anzeige bringen (wie gesagt, ein halbwegs versierter User hebelt das ohne Mühe aus):

  • sub Workbook.close()
  • Sheets("...").Select
  • ActiveWindow.SelectedSheets.Visible = False
  • end sub


und

sub Workbook_open()
Sheets("anderesBlatt").Select 'ob das notwendig ist, hab ich nicht geprüft
Sheets("...").Visible = True
end sub

oder
Columns("D:D").EntireColumn.Hidden = True
Columns("F:F").EntireColumn.Hidden = True

Dass es einmal hidden heißt und einmal visible: da kann ich nichts dafür...
Hab das übrigens per µ-Recorder aufgezeichnet, rate ich Dir ebenfalls.
kannst natürlich auch sperren/entsperren (.locked = true, locked = false) nehmen oder sonstwas.

Du kannst die Zellen schützen. Also entsperrst erstmal alle Zellen, die die Benutzer später bearbeiten dürfen (Zellen markieren, rechtsklick, auf "Zellen formatieren..." klicken, im neuen Fenster unter dem Registerblatt "Schutz" den Haken bei "gesperrt" rausnehmen), dann gehst du im Menü "Überprüfen" auf "Blatt schützen". Da kannst du einstellen, was alle Leute dürfen und kannst ein Kennwort eingeben, womit der Schutz wieder aufgehoben werden kann.

Das geht auch ohne VBA.

  • markiere alle Zellen im Arbeitsblatt
  • rechte Maustaste → Zellen formatieren
  • Schutz → () Gesperrt
  • Dann alle Zellen markieren, die gesperrt werden sollen und den Haken bei Gesperrt setzen.
  • Überprüfen → Blatt schützen

Wie kann man zwei Variablen in einer For-Schleife hochzählen lassen (in VBA ) ?

Ich möchte mithilfe von VBA eine bedingte Formatierung (Hintergrundfarbe) von einzelnen Zellen(jede zweite im Bereich von 2 - 34) innerhalb einer Spalte durchführen. Ist der Wert der entsprechenden Spalte gleich des Wertes in der Zelle links daneben (B), soll die Zelle einen grünen Hintergrund bekommen, ansonsten gelb. Die Spaltenbezeichnungen wollte ich mithilfe einer For-Schleife hochzählen lassen. Wie kann ich dies möglichst einfach realisieren?

Ich bin gerade dabei VBA zu erlernen und dementsprechend noch unerfahren.

...zur Frage

Excel VBA automatisch nächste freie Spalte nehmen?

hi hab mir mit Makros in VBA was zum übertragen von Daten in eine andere Arbeitsblatt zusammengebastelt. Dort soll es in eine Tabelle eingefügt werden die sich automatisch um eine Spalte nach rechts erweitern soll mit jedem Eintrag.

Sub inauftragplus()
   Range("D11:D22").Select
   Selection.Copy
   Sheets("Datenbank").Select
   ActiveWindow.SmallScroll Down:=-81
   Range("B9").Select
   ActiveSheet.Paste
   Sheets("Eingabe").Select
   Application.CutCopyMode = False
   Selection.ClearContents
End Sub
...zur Frage

Websites per Ports sperren?

Hallo, ich möchte über meinen PC für bestimmte Nutzer Ports sperren, sodass sie bestimmte Websites nichtmehr aufrufen können. Jetzt wollte ich wissen welche Ports ich sperren sollte. Bei meinem Router Programm kann ich, diese Einstellungen sperren (siehe unten). Ich möchte v.a. Wesbites mit nicht jugendfreien Inhalten sperren (Pornos etc.) Oder gibts es andere möglichkeiten von meinem pc aus andere websites für nutzer des netzwerkes zu sperren? Danke

Speedport W 724 V wird verwendet Ports etc:

Alle TCP-Ports sperren

Alle UDP-Ports sperren

Alle Webseiten sperren (HTTP, TCP-Port 80,3128,8000,8001,8080)

Sicheres HTTP sperren (HTTPS, TCP Port 443)

Versenden von E-Mails sperren (SMTP, TCP-Port 25)

Empfangen von E-Mails sperren (POP3, TCP-Port 110)

News-Foren sperren (NNTP, TCP-Port 119)

File Transfer sperren (FTP, TCP-Port 21)

Telnet Dienst sperren (TCP-Port 23)

DNS sperren (UDP-Port 53)

SNMP sperren (UDP-Port 161, 162)

VPN-PPTP sperren (TCP-Port 1723)

VPN-L2TP sperren (UDP-Port 1701)

...zur Frage

Wie ermittelt man in Excel (VBA) den Zelleninhalt bei verbundenen Zellen?

Ich durchlaufe in meinem Excel VBA-Script die Zellen einer Spalte, um den Zelleninhalt auszuwerten. Nun kann es passieren daß Zellen "verbunden" sind. In diesem Fall liefert mir das Script nur jeweils für die linke oberste Zelle der verbundenen Zellen den Wert zurück. In den anderen Zellen kommt Blank zurück. Ich würde in allen Zellen den gleichen Wert zurückerwarten?
Wie könnte man das bewerkstelligen?
Hardcopy/Beispiel: In den grünen Spalten steht was ich erwarten würde. In den gelben die tatsächliche VBA-Ausgabe.

Private Sub Worksheet_Activate()
  Dim iRow As Integer
  iRow = 4
  Do
    Worksheets("Test").Cells(iRow, 5) = Worksheets("Test").Cells(iRow, 1)
    Worksheets("Test").Cells(iRow, 7) = Worksheets("Test").Cells(iRow, 2)
    iRow = iRow + 1
    If iRow > Worksheets("Test").UsedRange.Rows.Count Then Exit Do
  Loop
End Sub
...zur Frage

In Excel über VBA Spalten ausblenden, wie geht das?

Hi, wie kann ich in VBA verschiedene Spalten ausblenden und das einblenden für den normalen Nutzer sperren?

Danke für die Antworten schon im Voraus!

...zur Frage

Was möchtest Du wissen?