Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
660to664
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
660to664
660to664
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeile makieren

Zeile makieren
30.08.2005 17:31:11
Walter
Hallo Zusammen,
habe folgende Frage:
Ich habe ein Makro bei dem die Zeile von Spalte 3 bis Spalte 11 makiert
wird.
Hier:
If .Column = 11 And .Row &gt 3 Then Range(Cells(.Row, 3), Cells(.Row, 11)).Select
Ich möchte nun das dies umgekehrt makiert wird, so das die AKTIVE Zelle die Spalte 11 ist, krieg das nicht hin ?
Gruß Walter

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile makieren
30.08.2005 17:37:47
bgeissl
Geht das nicht mit
cells(x,y).activate
gruß
Leider nicht
30.08.2005 17:55:35
Walter
Hallo bgeissel,
funktioniert leider nicht.
Wie gesagt Makierung alles OK aber die AKTIVE Zelle sollte dann die Zelle in der
Spalte 11 sein.
Gruß walter mb
AW: Zeile makieren
30.08.2005 18:04:18
PeterW
Hallo Walter,
die erste Bedingung lässt du aber schon weg?
If .Row &gt 3 Then Cells(.Row, 11).Select
Gruß
Peter
AW: Zeile makieren
30.08.2005 18:45:23
Walter
Hallo Peter,
in den ersten 3Zeilen darf nichts makiert werden.
Hier mein kompl. Makro:
Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Unprotect ("bk")
With Target
If .Column = 11 And .Row &gt 3 Then Range(Cells(.Row, 3), Cells(.Row, 11)).Select
End With
End Sub
Gruß Walter mb
Anzeige
AW: Zeile makieren
30.08.2005 19:02:13
PeterW
Hallo Walter,
wenn immer die Zelle in Spalte 11 markiert werden soll dann so:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Unprotect ("bk")
With Target
If .Row > 3 Then Cells(.Row, 11).Select
End With
End Sub

Allerdings kannst du jetzt keine anderen Zellen mehr auswählen. Ist das so gewollt? Wenn nicht erklär mal genau, was du beabsichtigst.
Kleine Nebenfrage noch: warum hebst du den Blattschutz auf ohne ihn am Ende wieder zu setzen?
Gruß
Peter
AW: Zeile makieren
30.08.2005 21:00:43
Walter
Hallo Peter,
ich habe mich Falsch ausgedrückt.
Ich versuchs noch mal.
Wenn ich in irgendeiner Zelle in Spalte 11 "stehe" soll in der Reihe die Spalte 3-10 makiert werden, damit man eine bessere Übersicht hat.
Ausgenommen sind Zeilen 1-3.
Gruß Walter
Anzeige
AW: Zeile makieren
30.08.2005 21:17:32
Josef
Hallo Walter!
Probier's mal so!
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo ErrExit
With Target
  If .Row > 3 And .Column = 11 Then
    Application.EnableEvents = False
    Range(Cells(.Row, 3), Cells(.Row, 11)).Select
    Cells(.Row, 11).Activate
  End If
End With
ErrExit:
Application.EnableEvents = True
End Sub


Gruß Sepp
P.S.: Rückmeldung nicht vergessen!


Anzeige
AW: Zeile makieren
30.08.2005 21:38:46
Walter
Hallo Sepp,
es funktioniert. Ich kann jetzt die Zahlen verändern.
Nur wenn ich die Zahlen eingegeben habe wird die Aktive Zelle wieder die Spalte3, jetzt muß ich wider Neu anklicken. Kann man das auch so hinkriegen das da dann die aktive Zelle bleibt ? Wenn ich in einer anderen Spalte bin soll ja nichts aktiviert werden.
Gruß walter mb
AW: Zeile makieren
30.08.2005 21:47:05
Josef
Hallo Walter!
Am einfachsten geht das so!
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo ErrExit
With Target
  If .Row > 3 And .Column > 2 And .Column < 12 Then
    Application.EnableEvents = False
    Range(Cells(.Row, 3), Cells(.Row, 11)).Select
    Cells(.Row, .Column).Activate
  End If
End With
ErrExit:
Application.EnableEvents = True
End Sub


Dann kannst du in jede Zelle schreiben und die markierung bleibt bestehen!
Gruß Sepp
P.S.: Rückmeldung nicht vergessen!


Anzeige
Danke funktioniert
30.08.2005 21:54:55
Walter
Hallo Sepp,
funktioniert Super.
Ich habe das Wissen nicht.
Kannst Du mir das mal daneben kommentieren, wenn das nicht zuviel Arbeit ist.
Gruß Walter
Hier mit Kommentar!
30.08.2005 22:04:18
Josef
Hallo Walter!
Hier die Kommentierte Version.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo ErrExit
' Bei einem fehler zu "ErrExit" gehen
With Target ' "Target" ist die Selektierte Zelle
  If .Row > 3 And .Column > 2 And .Column < 12 Then
    ' Wenn Zeilennummer > 3 Und Spalte > 2 Und Spalte < 12 Dann
    Application.EnableEvents = False
    ' Ereignisprozeduren ausschalten um sich nicht selbst aufzurufen
    Range(Cells(.Row, 3), Cells(.Row, 11)).Select
    ' Bereich in der Zeile (.Row) von "Target" von Spalte 3 bis 11 selektieren
    .Activate
    ' "Target" als aktive Zelle setzten
  End If
End With
ErrExit:
Application.EnableEvents = True
' Ereignisprozeduren wieder einschalten
End Sub


Gruß Sepp
Anzeige
Danke o.t.
30.08.2005 22:11:26
Walter
Herzlichen Dank,
super Sepp !!!
Leider noch Problem
01.09.2005 13:53:34
Walter
Hallo Sepp,
funktioniert ich kann einen Wert in Spalte 11 eingeben, wenn ich jedoch im Bereich von Spalte 3 bis 10 eine Zelle kopieren möchte, geht das nicht, da die Zeile selektiert ist.
Kann man das irgendwie berücksichtigen.
Gruß walter mb
AW: Leider noch Problem
01.09.2005 16:46:54
Josef
Hallo Walter!
Klar lässt sich das Einbauen!
Mit diesem Code kannst du, bei gedrückter [ALT] Taste, ganz normal
die Zellen auswählen!

Option Explicit
Private Declare Function GetAsyncKeyState Lib "user32" _
(ByVal vKey As Long) As Integer
Private Const VK_ALT As Long = 18#
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo ErrExit
' Bei einem fehler zu "ErrExit" gehen
If GetAsyncKeyState(VK_ALT) <> -32767 Then
' Nur wenn nicht gleichzeitig ALT gedrückt wird
With Target ' "Target" ist die Selektierte Zelle
If .Row > 3 And .Column > 2 And .Column < 12 Then
' Wenn Zeilennummer > 3 Und Spalte > 2 Und Spalte < 12 Dann
Application.EnableEvents = False
' Ereignisprozeduren ausschalten um sich nicht selbst aufzurufen
Range(Cells(.Row, 3), Cells(.Row, 11)).Select
' Bereich in der Zeile (.Row) von "Target" von Spalte 3 bis 11 selektieren
.Activate
' "Target" als aktive Zelle setzten
End If
End With
End If
ErrExit:
Application.EnableEvents = True
' Ereignisprozeduren wieder einschalten
End Sub

Gruß Sepp
Anzeige
AW: Leider noch Problem
01.09.2005 18:45:11
Walter
Hallo Sepp,
das ist ja toll.
Ehrlich gesagt ich blicke da nicht durch, nur wenn möglich vielleicht noch einmal mit
Text ?
Gruß walter mb
AW: Leider noch Problem
01.09.2005 20:14:23
Josef
Hallo Walter!
Am ursprünglichen Code hat sich nichts verändert!
Ich habe nur die API Funktion

Private Declare Function GetAsyncKeyState Lib "user32" _
(ByVal vKey As Long) As Integer

hinzugefügt.
Im Code wird mit

If GetAsyncKeyState(VK_ALT) <> -32767 Then

geprüft ob die ALT-Taste gedrückt ist oder nicht!
Wenn nicht, dann wird der Code ausgeführt.
Gruß Sepp
Anzeige
Danke funktioniert
01.09.2005 20:30:49
Walter
Hallo Sepp,
Danke nochmals für die Info.
Gruß Walter
Gerne!
01.09.2005 20:37:02
Josef
Gruß Sepp

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige