Anzeige
Archiv - Navigation
972to976
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
972to976
972to976
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Fadenkreuzmakro

Fadenkreuzmakro
02.05.2008 09:17:00
Hanses
Hallo,
ich möchte das Fadenkreuz Makro von Hajo benutzen. DAs klappt auch.
Ich möchte das MAkro dahingehend ändern, das die Beschneidung des markierten Bereiches aufgehoben wird und die gesamte Spalte farbig wird.
Das hat den Grund, das ich in meiner Tabelle scrollen muss.
Kann mir da jemand helfen
Besten Dank

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fadenkreuzmakro
02.05.2008 09:26:00
Andi
Hi,
Kann mir da jemand helfen
Vermutlich schon; die Chancen dafür steigen aber bestimmt, wenn Du das betreffende Makro postest; wir kennen hier zwar alle Hajos Seite, aber nachdem Du das Makro ja wohl gerade vor Dir hast, stellt sich die Frage, warum wir extra danach suchen sollten...
Schönen Gruß,
Andi

AW: Fadenkreuzmakro
02.05.2008 09:29:54
Hanses
Hast Recht.
hier der Code:
'**************************************************
'* H. Ziplies *
'* 24.07.07 komplette Überarbeitung des Code *
'* erstellt von Hajo.Ziplies@web.de *
'* http://Hajo-Excel.de/ *
'**************************************************
' gesamte Zeile markieren
' alte Farbe wieder zurückstellen bei wechsel und schliessen
' farbveränderungen im markiertem Bereich werden nicht zurück gestellt, außer Rot
' Abschalten durch Doppelklick
'
' Modifiziert von JFreudens
' Durch Auswertung von Activewindow.ActivePane.VisibleRange
' wird der Aufwand deutlich reduziert. Es wird jetzt ein "Fadenkreuz" eingefärbt
' Merker ob Markierung eingeschaltet, geschieht durch Doppelklick
' Dimensionierung erfolgt später in Abhängigkeit der Anzahl der sichtbaren
' Zellen des Fadenkreuzes
Dim BoMenue As Boolean

Private Sub Workbook_Activate()
'Application.CommandBars("Worksheet Menu Bar").Enabled = False
'Application.CommandBars("Formatting").Visible = False
'Application.CommandBars("Standard").Visible = False
If BoMenue = False Then KontextmenueErgaenzen
'   Damit keine Markierung beim öffnen
If InI = 32000 Then Exit Sub
If TypeName(ActiveSheet)  "Worksheet" Then Exit Sub               ' keine Tabelle
If BoZustand = False Then Auslesen                                ' Farbe Fadenkreuz  _
auslesen
End Sub



Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If BoZustand Then Exit Sub                                       ' Markierung aus
'   nach Hinweis von Peter Haserodt Vergleich eingefügt ob Tabelle
If TypeName(ActiveSheet) = "Worksheet" Then Zurück              ' Farben zurückstellen
End Sub



Private Sub Workbook_Deactivate()
Application.CommandBars("Worksheet Menu Bar").Enabled = True
Application.CommandBars("Formatting").Visible = True
Application.CommandBars("Standard").Visible = True
BoMenue = False
KontextmenueZuruecksetzen
If BoZustand Then Exit Sub                                       ' Markierung aus
'   nach Hinweis von Peter Haserodt Vergleich eingefügt ob Tabelle
If TypeName(ActiveSheet) = "Worksheet" Then Zurück              ' Farben zurückstellen
End Sub



Private Sub Workbook_Open()
KontextmenueErgaenzen
BoMenue = True
'   Variable setzen damit keine Kennzeichnung bei Open
InI = 32000
'   Markierung nicht beim öffnen
'    If Selection.Cells.Count > 1 Then Exit Sub                               ' mehr als eine  _
Zelle markiert
''   nach Hinweis von Peter Haserodt Vergleich eingefügt ob Tabelle
'    If TypeName(ActiveSheet) = "Worksheet" Then Auslesen            ' Farben des Fadenkreuzes  _
auslesen
End Sub



Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If BoZustand Then Exit Sub                                       ' Markierung aus
Zurück                                                          ' Farben zurückstellen
If Target.Count > 1 Then Exit Sub                               ' mehr als eine Zelle  _
markiert
'   nach Hinweis von Peter Haserodt Vergleich eingefügt ob Tabelle
If TypeName(ActiveSheet) = "Worksheet" Then
Auslesen  ' Farben des Fadenkreuzes auslesen
End If
End Sub



Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("Worksheet Menu Bar").Enabled = True
Application.CommandBars("Formatting").Visible = True
Application.CommandBars("Standard").Visible = True
KontextmenueZuruecksetzen
If BoZustand Then Exit Sub                                       ' Markierung aus
'   nach Hinweis von Peter Haserodt Vergleich eingefügt ob Tabelle
If TypeName(ActiveSheet) = "Worksheet" Then Zurück              ' Farben zurückstellen
End Sub



Private Sub Workbook_BeforePrint(Cancel As Boolean)
'   falls Farbe beim Druck wieder zurückgestellt werden soll
'   nach Druck ist die aktuelle Zelle nicht markiert
If BoZustand Then Exit Sub                                           ' Markierug aus
'   nach Hinweis von Peter Haserodt Vergleich eingefügt
If TypeName(ActiveSheet) = "Worksheet" Then Zurück                  ' Farbe zurückstellen
End Sub



Private Sub Workbook_SheetActivate(ByVal Sh As Object)
'   nach Hinweis von Peter Haserodt Vergleich eingefügt
If TypeName(ActiveSheet) = "Worksheet" Then
If Selection.Cells.Count > 1 Then Exit Sub                      ' mehr als eine Zelle  _
markiert
Auslesen     ' Farben des Fadenkreuzes auslesen
End If
End Sub



Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If BoZustand Then Exit Sub                                           ' Markierung aus
'   nach Hinweis von Peter Haserodt Vergleich eingefügt
If TypeName(ActiveSheet) = "Worksheet" Then Zurück                   ' Farbe zurückstellen
End Sub


Anzeige
AW: Fadenkreuzmakro
02.05.2008 09:37:30
Hajo_Zi
Hallo Hannes,
wie Andi schon schrieb, wäre der Code nicht schlecht. Den hast Du ja inzwischen gepostet. Für mich als erstelle wäre der Dateiname intressant. Da es mehrere Beispiele gibt, die sich in gewissen Punkten unterscheiden. Anhand des Codes feststellen welcher es ist ist für mich zu aufwendig.
Muss es der komplette Umfang sein? Ist die Tabelle fixiert? Dieser Teil macht den Code aufwendig.

AW: Fadenkreuzmakro
02.05.2008 10:13:00
Hanses
Hallo Hajo,
das ist das Fadenkreuz3_kontext Makro.
Was meinst Du mit "kompletter Umfang" und mit "Tabelle fixiert".
Was ich benötige: Es muss die gesamte Spalte farbig markiert werden, da in der Tab. gescrollt wird.
Bisher endet die Farbmarkierung am Ende des Bildschirmausschnitt.
Gruß
Benno

Anzeige
AW: Fadenkreuzmakro
02.05.2008 10:15:38
Hajo_Zi
Hallo Benno oder Hallo Hannes?,
In Excel gibt es die Funktion Fixiert, damit bleibt die oberste und oder rechte Spalte stehen.
Gruß Hajo

AW: Fadenkreuzmakro
02.05.2008 10:18:54
Hanses
Oh Mann, klar keine ich fixiert. Habe ein Brett vor dem Kopf.
Die Tabelle ist fixiert. Bis Zeile "5" und Spalte "C"
Benno Hanses (Jetzt verständlich;-)) )
Danke für die Hilfe !!!!!

AW: Fadenkreuzmakro
02.05.2008 10:54:00
Hajo_Zi
Hallo Benno,
ob Du mit der Lösung glücklich wirst? Es werden bei jedem Zellenwechsel 65536+256 Zellen zurückgesetzt und ausgelesen, was Zeit kostet. Ich bin der Auffassung eine arbeit mit der Datei ist schlect möglich.
Die Datei ist zu groß zum hochladen. Ändere den Code im Modul.

Option Explicit                         ' Variablendefinition notwendig
Option Private Module               ' damit Makros nicht sichtbar
'* H. Ziplies                                             *
'* 02.05.08                                              *
'* erstellt von Hajo.Ziplies@web.de            *
'* http://Hajo-Excel.de/
Public BoZustand As Boolean     '  Zustand der Markierung
Public StName As String            ' CodeName der Tabelle
Public StWert() As String           ' Zelladresse
Public RaFadenKreuz As Range
Public LoI As Long                      ' Schleifenvariable
Public ByFarbe As Byte              ' Farbe Markierung
Sub Zurück()
Dim StKlarname As String                    ' Klarname der Tabelle
If StName = "" Then Exit Sub                ' es sind keine Werte vorhanden
'   Klarname der Tabellle feststellen
Dim WsTabelle As Worksheet
For Each WsTabelle In Worksheets            ' Schleife über alle Tabellen
If WsTabelle.CodeName = StName Then     ' Namen mit abgespeicherten vergleichen
StKlarname = WsTabelle.Name         ' Namen auf Register auslesen
Exit For                            ' Schleife verlassen
End If
Next WsTabelle
If StKlarname = "" Then                     ' Tabelle wurde gelöscht
StWert(0) = ""                          ' ersten vorhanden Wert löschen, die Werte  _
werden nicht mehr benötigt
Exit Sub
End If
'   Farbe zurückstellen
If RaFadenKreuz Is Nothing Then Exit Sub
With Worksheets(StKlarname)
'        .Unprotect
For LoI = 1 To UBound(StWert)
With .Range(StWert(LoI)).Interior
If .ColorIndex = ByFarbe Then .ColorIndex = xlNone
End With
Next LoI
'        .Protect
End With
End Sub
Sub Auslesen()
Dim RaZelle As Range
Dim StSichtbar_range As String      ' Sichtbarer Bereich Fixierung unten rechts
Dim LoLetzte As Long                ' Letzte Zeile Bildschirm
Dim StLinks As String               ' linke Begrenzung Bildschirm bei Fixierung
Dim StRechts As String              ' rechte Begrenzung Bildschirm
'   jede Tabelle mit einer anderen Farbe von Farbindex 3 bis 55
ByFarbe = ActiveSheet.Index Mod 53 + 3
StName = ActiveSheet.CodeName                       ' CodeName der Tabelle
' Bestimmt den Fadenkreuz-Bereich, der durch die aktive Zelle definiert wird.
' Anschließend wird der bereich beschnitten, um nur die zellen des Fadenkreuzes
' zu behalten, die derzeit sichtbar sind
Set RaFadenKreuz = Union(ActiveCell.EntireRow, ActiveCell.EntireColumn)
'   Dimensionieren des Variablenbereiches nach Anzahl der Zellen
ReDim StWert(1 To RaFadenKreuz.Cells.Count)
LoI = 0
For Each RaZelle In RaFadenKreuz.Cells
LoI = LoI + 1
With RaZelle
StWert(LoI) = .Address
If .Interior.ColorIndex = xlNone Then .Interior.ColorIndex = ByFarbe
End With
Next RaZelle
End Sub
'   Kontextmenü
Sub KontextmenueErgaenzen()
Dim oBtn As CommandBarButton
Set oBtn = Application.CommandBars("Cell").Controls.Add
With oBtn
.Caption = "Markierung"        ' Beschriftung
.OnAction = "Markierung"       ' Aktion
.FaceId = 343               ' Symbol
End With
Set oBtn = Nothing
End Sub
Sub KontextmenueZuruecksetzen()
On Error Resume Next
Application.CommandBars("Cell").Controls("Markierung").Delete
End Sub
Sub Markierung()
'   nach Hinweis von Peter Haserodt Vergleich eingefügt
If TypeName(ActiveSheet)  "Worksheet" Then Exit Sub               ' keine Tabelle
With Application.CommandBars("Cell").Controls("Markierung")
If .FaceId = 342 Then
.FaceId = 343
Auslesen                                                        ' Farbe Fadenkreuz  _
auslesen
MsgBox "Markierung ein"
Else
.FaceId = 342
Zurück                                                          ' Farbe zurü _
ckstellen
MsgBox "Markierung aus"
End If
End With
BoZustand = Not BoZustand
End Sub


Gruß Hajo

Anzeige
AW: Fadenkreuzmakro
02.05.2008 12:24:00
Hanses
Hallo Hajo,
noch 2 Fragen.
1) Wie muss ich den Code ändern, damit vorhandene farbige Zellen auch markiert werden.
2) wie erreiche ich, das der Benutzer nicht mit Kick auf die rechte Maustaste nicht sichtbare Symbolleisten
einblenden kann und nur meine eigene sichtbar bleibt.
Vielen Dank für Deine Hilfe
Benno

AW: Fadenkreuzmakro
02.05.2008 12:36:00
Hajo_Zi
Hallo Benno,
das ist zu aufwendig, Du musst Dir ja für 65536+255 Zellen die vorhandene Farbe merken.
Symbollleisten ausblenden
Gruß Hajo
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige