Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
812to816
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
812to816
812to816
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellbereiche makieren

Zellbereiche makieren
30.10.2006 19:07:46
floh
Hallo VBA -Experten,
Gesucht wird ein Makro, das je nach Lage des Cursors
die Spalte D im Bereich einen bestimmten Zellenabschnitts
makiert.
bitte seht euch doch mal die Beispieltabelle an.
https://www.herber.de/bbs/user/37788.xls
Mit freundlichen Grüßen
floh

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellbereiche makieren
30.10.2006 20:46:41
fcs
Hallo floh,
ich hab die Sache ein klein wenig vereinfacht. Das Makro markiert in Spalte D wenn in einer Kopfzeile mit Eintrag 1 in Spalte B eine Zelle in Spalte E, F, G oder H markiert ist. Abhängig von der Spalte E, F, G oder H werden in D unterschiedlich viele Zeilen markiert.
Gruss
Franz

Sub SpalteDmarkieren()
Dim Zelle As Range
Set Zelle = ActiveCell
Select Case Zelle.Column
Case 5
'In Spalte D werden Zellen bis zum Ende des nächsten Berechnungs-Blockes markiert
If Zelle.Offset(0, -3).Value = 1 Then Call Markieren(1, Zelle.Row)
Case 6
'In Spalte D werden Zellen bis zum Ende der nächsten beiden Berechnungs-Blöcke markiert
If Zelle.Offset(0, -4).Value = 1 Then Call Markieren(2, Zelle.Row)
Case 7
'In Spalte D werden Zellen bis zum Ende der nächsten 3 Berechnungs-Blöcke markiert
If Zelle.Offset(0, -5).Value = 1 Then Call Markieren(3, Zelle.Row)
Case 8
'In Spalte D werden Zellen bis zum Ende des letzten Berechnungs-Blockes markiert
If Zelle.Offset(0, -6).Value = 1 Then Call Markieren(4, Zelle.Row)
Case Else
'do nothing
End Select
End Sub
Private Sub Markieren(Block As Integer, Zeile1 As Long)
Dim Einser As Integer, Zeile2 As Long, wks As Worksheet
Set wks = ActiveSheet
Zeile2 = Zeile1
With wks
'Zeilen hochzählen bis die Zahl der Einser der Anzahl der zu markierenden Berechnungsblöcke entspricht
Do Until Einser = Block And Block <> 4
Zeile2 = Zeile2 + 1
If .Cells(Zeile2 + 1, 2) = 1 Then Einser = Einser + 1
If IsEmpty(.Cells(Zeile2 + 1, 4)) Then Exit Do 'Liste ist zu Ende
Loop
.Range(.Cells(Zeile1, 4), .Cells(Zeile2, 4)).Select
If MsgBox("Formeln im selektierten Bereich in Werte verwandeln?", vbYesNo + vbQuestion) = vbYes Then
Selection.Value = Selection.Value
End If
End With
End Sub

Anzeige
AW: Zellbereiche makieren
31.10.2006 23:23:44
floh
Hallo Franz,
erst mal danke für Deine Antwort.
Habe versucht Deine Makros zu testen.
aber beim Ausführen mit F5 über den VBA-Editor passiert nichts.
Mach ich irgend etwas falsch?
MfG
floh
AW: Zellbereiche makieren
01.11.2006 07:47:34
fcs
Hallo floh,

aber beim Ausführen mit F5 über den VBA-Editor passiert nichts.
Mach ich irgend etwas falsch?

Scheinbar ja, denn bei mir funktioniert es.
Nachdem du das Makro im VBA-Editor in ein Modul kopiert hast wechselst du in die Tabelle.
Markiere in einer Zeile in der für Kopfzeile in Spalte B eine 1 steht eine Zelle in den Spalten E, F, G oder H (5, 6, 7 oder 8)
Starte mit Alt+F8 die Makroauswahl und starte das Makro "SpalteDmarkieren" ggf. schrittweise.
Die Ausführung mit F5 im VBA-Editor funktioniert auch. Dann muss du vorher in der Tabelle wie oben beschrieben eine Zeile markieren, sonst läuft das Makro ohne Aktionen durch. Führe das Makro doch mal mit F8 im Schrittmodus aus, dann kannst du den Ablauf der Makroaktionen verfolgen.
Gruss
Franz
Anzeige
AW: Zellbereiche makieren
03.11.2006 00:16:40
floh
Hallo Franz,
jetzt verstehe ich.
Vielen Dank für diese Antwort
MfG
floh

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige