Makro-Problem



Excel-Version: 9.0 (Office 2000)
nach unten

Betrifft: Makro-Problem
von: Franz
Geschrieben am: 06.07.2002 - 13:09:59

Hallo Forumteilnehmer,
Warum erkennt dieses Makro die leeren Zellen nicht.
Es wird im ganzen Bereich der Zellschutz aktiviert.
Danke
Gruß Franz

Sub Zellverb()
Application.ScreenUpdating = False
On Error Resume Next
Dim Zellv As Range
Dim i As Integer

For i = 1 To ActiveWorkbook.Sheets.Count
Sheets(i).Activate
Set Zellv = Range("A1:L20")

If Zellv.Value <> "" Then
Zellv.Locked = True
End If
Next i
Application.ScreenUpdating = True
End Sub

     Code eingefügt mit Syntaxhighlighter 1.14




nach oben   nach unten

Re: Makro-Problem
von: Hans W Hofmann
Geschrieben am: 06.07.2002 - 13:37:20

Was soll denn der Code Deiner Meinung nach bewirken?
Standardmäßig ist die Locked-Eigenschaft auf True.
Übrigens, wenn Du einzelne Zellen bearbeiten willst, solltest Du auch den Zugriff auf einzelen Zellen programmieren.

Gruß HW


nach oben   nach unten

Kann nicht gehen...
von: Ramses
Geschrieben am: 06.07.2002 - 13:40:27

Hallo Franz,
wenn du die "On Error Resume Next" ausklammerst, dann siehtst du dass du einen Fehler erhältst: "Fehler 13; Typen unverträglich".

Du prüfst einen Bereich auf einen einzlnen Wert das kann nicht gehen.


Sub Zellverb()
Application.ScreenUpdating = False
On Error Resume Next
Dim Zellv As Excel.Range
Dim As Excel.Range
Dim As Integer
For i = 1 To ActiveWorkbook.Sheets.Count
    Sheets(i).Activate
    Set Zellv = Range("A1:L20")
    For Each c In Zellv
        If IsEmpty(c) Then
        Zellv.Locked = True
        End If
    Next
Next i
Application.ScreenUpdating = True
End Sub

Gruss Rainer

nach oben   nach unten

Geht immer noch nicht....
von: Franz
Geschrieben am: 06.07.2002 - 18:27:37

Hallo Rainer,
Die Fehlermeldung ist zwar weg,aber das Makro unterscheidet noch immer nicht zwischen leeren Zellen u.Zellen in denen Zahlen oder Text steht.

Konkret gesagt,ich möchte einen Bereich wo der Zellschutz deaktiviert ist prüfen,ob in den Zellen eine Zahl oder Text steht,wenn ja,soll in diesen Zellen der Zellschutz aktiviert
werden, in den anderen nicht.
Danke
Gruß Franz


nach oben   nach unten

Re: Makro-Problem
von: Franz
Geschrieben am: 06.07.2002 - 18:42:06

Hallo HW,
Wie in der Antwort auf Rainer schon beschrieben,sollte der Code
folgendes bewirken:

Ich möchte einen Bereich wo der Zellschutz deaktiviert ist prüfen,ob in den Zellen eine Zahl oder Text steht,wenn ja,soll in diesen Zellen der Zellschutz aktiviert
werden, in den leeren Zellen nicht.

Danke
Gruß Franz

nach oben   nach unten

Re: Geht immer noch nicht....
von: PeterW
Geschrieben am: 06.07.2002 - 19:23:55

Hallo Franz,

es mag in Version 9 anders sein aber bei Version 8 muss nachdem die Eigenschaft der Zellen geändert wurde (auf geschützt) natürlich noch der Blattschutz aktiviert werden.

Gruß
Peter


nach oben   nach unten

Das ist schon klar...
von: Franz
Geschrieben am: 06.07.2002 - 19:50:47

Hallo Peter,
Das ist schon klar,daß man den Blattschutz aktivieren muß,
aber das löst das Problem nicht.
Den Blattschutz habe ich hier nicht eingebaut.
Gruß Franz

nach oben   nach unten

Re: Das ist schon klar...
von: PeterW
Geschrieben am: 06.07.2002 - 19:56:06

Hallo Franz,

habe bei mir

Zellv.Locked = True

ersetzt durch

Cells(c.row, c.column).Locked = True

Damit passiert das, was nach Deiner Beschreibung passieren soll (nachdem der Blattschutz gesetzt ist)

Gruß
Peter


nach oben   nach unten

Re: Das ist schon klar...
von: PeterW
Geschrieben am: 06.07.2002 - 20:05:13

Sorry Franz,

geht natürlich auch ohne den Cells"-Kram", also

c.Locked = True

Gruß
Peter


nach oben   nach unten

Kleiner Lapsus meinerseits...
von: Ramses
Geschrieben am: 06.07.2002 - 21:13:47

Hallo Franz

Peter hat es richtig gesagt. Es muss heissen

c.Locked = true


ich habe einfach deine Variable übernommen. Tut mir leid.

Gruss Rainer


nach oben   nach unten

Re: Kleiner Lapsus meinerseits...
von: PeterW
Geschrieben am: 06.07.2002 - 22:21:50

Hallo Rainer,

sorry für die Einmischung.

Gruß
Peter


nach oben   nach unten

So funktioniert es jetzt, aber
von: Franz
Geschrieben am: 06.07.2002 - 23:29:02

verbundene Zellen wurden vom Makro nicht erkannt.
Hier habe ich jetzt auch eine Lösung gefunden.
Ich mußte auch empty noch mit <>"" ersetzen
Herzlichen Dank für deine Hilfe
Gruß Franz

Sub Zellverb()
Application.ScreenUpdating = False
On Error Resume Next
Dim Zelle1 As Excel.Range
Dim Zelle2 As Excel.Range
Dim Zelle3 As Excel.Range
Dim Zelle4 As Excel.Range

Dim c As Excel.Range
Dim i As Integer
For i = 1 To ActiveWorkbook.Sheets.Count
    Sheets(i).Activate
    
    Set Zelle1 = Range("G7:H7")
    Set Zelle2 = Range("G8:H8")
    Set Zelle3 = Range("J7:K7")
    Set Zelle4 = Range("J8:K8")
    
    Set Bereich = Union(Zelle1, Zelle2, Zelle3, Zelle4)
    For Each c In Bereich
        If c <> "" Then
        c.UnMerge
        c.Locked = True
        Zelle1.Merge
        Zelle2.Merge
        Zelle3.Merge
        Zelle4.Merge
        End If
    Next
Next i
Application.ScreenUpdating = True
End Sub

Code eingefügt mit Syntaxhighlighter 1.14


nach oben   nach unten

Re: Kleiner Lapsus meinerseits...
von: Franz
Geschrieben am: 06.07.2002 - 23:42:08

Kein Problem,
ich mußte das Problem mit verbundenen Zellen
noch lösen,und empty mit <>"" ersetzen.
Gruß Franz

Sub Zellschutz()
Application.ScreenUpdating = False
On Error Resume Next
Dim Zelle1 As Excel.Range
Dim Zelle2 As Excel.Range
Dim Zelle3 As Excel.Range
Dim Zelle4 As Excel.Range

Dim c As Excel.Range
Dim i As Integer
For i = 1 To ActiveWorkbook.Sheets.Count
    Sheets(i).Activate
    
    Set Zelle1 = Range("G7:H7")
    Set Zelle2 = Range("G8:H8")
    Set Zelle3 = Range("J7:K7")
    Set Zelle4 = Range("J8:K8")
    
    Set Bereich = Union(Zelle1, Zelle2, Zelle3, Zelle4)
    For Each c In Bereich
        If c <> "" Then
        c.UnMerge
        c.Locked = True
        Zelle1.Merge
        Zelle2.Merge
        Zelle3.Merge
        Zelle4.Merge
        End If
    Next
Next i
Application.ScreenUpdating = True
End Sub

Code eingefügt mit Syntaxhighlighter 1.14



nach oben   nach unten

Re: So funktioniert es jetzt, aber
von: PeterW
Geschrieben am: 06.07.2002 - 23:54:56

Hallo Franz,

danke für die Rückmeldung - aber von verbundenen Zellen war nie die Rede gewesen. (Kennst Du zufällig ein Tool, welches eine runde gläserne Blumenvase in eine magische Glaskugel verwandeln kann? ;-)

Gruß Peter


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Makro zu einer bestimmten Uhrzeit starten"