Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
704to708
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
704to708
704to708
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Makro nur für bestimmten Bereich anwenden
05.12.2005 12:02:10
Anja
Hallo Leute,
ich möchte gern ein Makro ausführen (Kommentar hinzufügen) aber nur in einem bestimmten Zellenbereich ("F10:AJ:87"), denn der andere Bereich ist geschützt. Dummerweise wird das Makro trotzdem auf den geschützten Zellen ausgeführt und das will ich verhindern. Habt ihr ne Idde wie der Code lauten muß?
Mein erster versuch war das Blatt so zu schützen, das nur bestimmte Zellen anklickbar sind, aber sobald ich die Datei schließe und wieder öffne, ist der Bereich zwar noch geschützt aber wieder anklickbar.
Mein bisheriges Makro lautet wie folgt (Das ist der Code der sich hinter dem OK-Button einer Userform verbirgt, die ich vorher aufrufe:

Private Sub OK_Click()
Dim Zelle As Range
For Each Zelle In Selection
Zelle.AddComment
Zelle.Comment.Text Text:=TextBox1.Value
Zelle.Comment.Shape.TextFrame.Characters.Font.Size = 11
Zelle.Comment.Shape.TextFrame.AutoSize = True
Next Zelle
Unload Userform1
End Sub

Ich hoffe das mir jemand helfen kann, bin noch ziemlich am anfang der VBA-Welt.
Danke Gruß Anja

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro nur für bestimmten Bereich anwenden
05.12.2005 12:47:26
Dani
Hallo Anja,
wenn ich dich richtig verstanden habe sollte folgendes funktionieren:

Private Sub OK_Click()
Dim Bereich As Range
Dim Zelle As Range
Set Bereich = Tabelle1.Range("F10:AJ87")
For Each Zelle In Bereich
Zelle.AddComment
Zelle.Comment.Text Text:=TextBox1.Value
Zelle.Comment.Shape.TextFrame.Characters.Font.Size = 11
Zelle.Comment.Shape.TextFrame.AutoSize = True
Next Zelle
Unload UserForm1
End Sub

Ich hoffe das hilft dir weiter
Gruss
Daniel
AW: Makro nur für bestimmten Bereich anwenden
05.12.2005 13:01:07
Anja
Hallo Daniel,
danke erstmal, funktioniert.
noch ne weitere Frage dazu: kann ich z. b. auch das machen:
Dim Bereich as Range
Set Bereich = Union(Range("F10:AJ11"), Range("F13:AJ:30"), Range("F13:AJ:14"), Range("F16:AJ:19"),ActiveCell)
If Intersect(Bereich) Is Nothing Then
MsgBox "Ungültiger Bereich"
Else
...mein makro...
end if
(Es soll geschaut werden, ob die aktive Zelle(n) im gültigen Bereich liegen)
aber das allerwichigste: ich würde das "Dim und Set" gern mit Public o.ä. an Anfang vom Modul setzen, damit ich es nicht in jedem Makro mit hineinschreiben muß, sonst wird es ja nie ferig mit rechnen. Hab nämlich mehrere Makro´s davon ;-) geht das?
danke schon mal im Voraus
gruß Anja
Anzeige
AW: Makro nur für bestimmten Bereich anwenden
05.12.2005 13:45:31
Dani
Hallo Anja,
kleine Anmerkung - Range Angaben erfolgen immer nach dem Muster "A10:AJ200" also immer nur ein Doppelpunkt zwischen oben links und unten rechts. Dein Ansatz sieht gut aus habs noch etwas abgeändert. Du musst die Aktivierten Zellen speichern und erst zuletzt vergleichen. Die Deklaration der Range Variablen kannst du in einem eigenen Modul als Public machen so stehen sie für alle Makros zur verfügung:
Option Explicit
Public Bereich As Range
Public OldRange As Range
Der Code sieht bei mir jetzt so aus:

Private Sub OK_Click()
Set OldRange = ActiveCell
Set Bereich = Application.Union(Tabelle1.Range("F10:AJ11"), Tabelle1.Range("F13:AJ30"), Tabelle1.Range("F13:AJ14"), Tabelle1.Range("F16:AJ19"))
If Application.Intersect(Bereich, OldRange) Is Nothing Then
MsgBox "Ungültiger Bereich"
Else
MsgBox "Das Makro startet"
End If
End Sub

Ich hoffe es hilft
Gruss
Daniel
Anzeige

156 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige