SelectionChange(ByVal Target As Excel.Range)

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: SelectionChange(ByVal Target As Excel.Range) von: Stefan (Grüni)
Geschrieben am: 23.02.2005 14:45:04

Hallo Excel-Profis,

bin leider kein VBA-Experte,- schummle mich durch, etwas abschreiben etwas lesen ...

Untere Prozedur habe ich mir "zusammengelesen" und das wahrscheinlich schlecht, weils einfach nicht funktioniert

Also nun zum dem was ich eigentlich wollte...

...Möchte das beim Auswählen der Zelle A9, dass ein Makro abläuft, das funktioniert auch
bzw.wenn die Zelle y17 angewählt wird ,dann soll die Zelle A7 "selected" werden.

Meine Lösung funktioniert leider dann doch nicht, wie kann ich es erreichen

Das ist mein Makro "ehem,heul"


Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
 If Target.Address = "$A$9" Then
Neuer_Artikel
ElseIf Target.Address = "$y$17" Then
Range("A7").Select
End If
End Sub


Gruß Stefan
Bild


Betrifft: AW: SelectionChange(ByVal Target As Excel.Range) von: bst
Geschrieben am: 23.02.2005 14:47:38

Hi Stefan,

Address liefert was in Großbuchstaben.

Nimm also "$Y$17".

HTH, Bernd


Bild


Betrifft: das ist nicht die Lösung leider nicht von: Stefan(Grüni)
Geschrieben am: 23.02.2005 14:57:09

Hallo Bernd.
das ist es leider nicht

stefan


Bild


Betrifft: AW: SelectionChange(ByVal Target As Excel.Range) von: bst
Geschrieben am: 23.02.2005 15:13:57

Hallo Stefan,

bei mir funktioniert das.

Schicke doch sonst mal Deine - ggf. verkleinerte - Datei.

Gruß, Bernd
--
Option Explicit


Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
   If Target.Address = "$A$9" Then
      Neuer_Artikel
   ElseIf Target.Address = "$Y$17" Then
      Range("A7").Select
   End If
End Sub


Sub Neuer_Artikel()
MsgBox "NeuerArtikel"
End Sub


Bild


Betrifft: AW: SelectionChange(ByVal Target As Excel.Range) von: Stefan Grünert
Geschrieben am: 23.02.2005 15:57:01

Hey Bernd
Danke für deine Überprüfung und du hast recht, aber leider habe ich damit der Benutzer durch Enter(ist halt näher am Zahlenblock) durch die Zellen b17 bis Y17 geführt wird, einen Bereich markiert dessen Ende halt Y17 ist (Markro "Neuer_Artikel" mit letzter Zeile Range("b17:Y17").Select) Ich denke, daß ist der Fehler weiss aber nicht wie ich dies umgehe
Hast noch einen Tipp?
Gruß Stefan



Bild


Betrifft: AW: SelectionChange(ByVal Target As Excel.Range) von: bst
Geschrieben am: 23.02.2005 22:13:58

Abend Stefan,

daran sollte es eigentlich nicht liegen.

Ohne Deine Datei und/oder Dein Makro gesehen zu haben, sehe ich keine Chance.

Gruß, Bernd


Bild


Betrifft: AW: SelectionChange(ByVal Target As Excel.Range) von: An Bernd
Geschrieben am: 24.02.2005 09:21:54

Hallo Bernd
hier mein Makro



Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
   If Target.Address = "$A$9" Then
      Neuer_Artikel
   ElseIf Target.Address = "$Y$17" Then
      Range("A7").Select
   End If
End Sub

Sub Neuer_Artikel()
'
' Makro3 Makro
' Makro am 22.02.2005 von Stefan Gruenert aufgezeichnet


Range("a17").Activate

If Not IsNumeric("a17") Then ' Hier sollte ansich auch geprüft werden ob ein text in
' in der Zelle steht


Range("a17").Value = Range("a7")
Range("B17:Y17").Select

Else

Rows("17:17").activate
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Insert Shift:=xlDown
Range("a17").Value = Range("a7")
Selection.Copy
Range("A17").Activate
ActiveSheet.Paste
Range("B17:Y17").Select


End If


Bild


Betrifft: AW: SelectionChange(ByVal Target As Excel.Range) von: bst
Geschrieben am: 24.02.2005 11:53:37

Hallo Stefan,

sollte doch eigentlich tun. Bis auf die Abfrage halt. Ersetze:
'If Not IsNumeric("a17") Then' durch sowas 'If Not IsNumeric(Range("a17").Value) Then'

Übrigens, setzte Dir im VBA einen Breakpoint auf die Zeile "If Target.Address = ..." (F9) und schau dann im Einzelschrittmodus (F8) nach was passiert.

Wenn ich's richtig verstanden habe, sollte sowas eigentlich reichen.

HTH, Bernd
--
Option Explicit


Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
   If Target.Address = "$A$9" Then
      Neuer_Artikel
   ElseIf Target.Address = "$Y$17" Then
      Range("A7").Select
   End If
End Sub

Sub Neuer_Artikel()
Application.EnableEvents = False
If IsNumeric(Range("a17").Value) Then
Rows(17).Formula = Rows(17).Value
Rows(17).Insert Shift:=xlDown
End If
Range("a17").Value = Range("a7").Value
Range("B17:Y17").Select
Application.EnableEvents = True
End Sub


Bild


Betrifft: AW: SelectionChange(ByVal Target As Excel.Range) von: Stefan (Grüni)
Geschrieben am: 24.02.2005 13:07:24

Hallo Bernd
zunächst für Deinen Code für "neuer_Artikel" dankeschön , ist doch einfacher als meiner

aber mit dem Haltepunkt gibts Probleme, es debugged beim Haltepunkt egal welche Zelle ich ansteuere.

Es ist immernoch so, daß bei Zahlen Eingabe in das Range("B17:Y17") dieses immer wieder durchlaufen(Zahleneingabe) wird nach y17 folgt dann wieder b17
Na ja, wer weis was ich falsch eingestellt habe,
wenn Du noch was weißt, wäre das super, ansonsten kann ich mich nur für deine Bemühungen bedanken

Gruß Stefan


Bild


Betrifft: AW: SelectionChange(ByVal Target As Excel.Range) von: bst
Geschrieben am: 24.02.2005 13:48:25

Hallo Stefan,

> aber mit dem Haltepunkt gibts Probleme, es debugged beim Haltepunkt egal welche Zelle ich ansteuere.

Ja. Das Ereignis Worksheet_SelectionChange wird halt immer dann aufgerufen, wenn Du eine andere Zelle anwählst. Laß es ggf. einfach via F5 weiterlaufen.
Oder setze den Haltepunkt woanders hin. Z.B. in die erste Codezeile von Neuer_Artikel.

> Es ist immernoch so, daß bei Zahlen Eingabe in das Range("B17:Y17") dieses immer wieder durchlaufen

Kann ich nicht nachvollziehen. Hast Du vielleicht noch andere Ereignisse benutzt ?
Vielleicht ein Worksheet_Change ??

cu, Bernd


Bild


Betrifft: AW: SelectionChange(ByVal Target As Excel.Range) von: Stefan
Geschrieben am: 24.02.2005 15:22:02

Hallo Bernd

Nein ich denke nicht


gruß Stefan


Bild


Betrifft: AW: SelectionChange(ByVal Target As Excel.Range) von: bst
Geschrieben am: 24.02.2005 16:23:20

Hi Stefan,

dann weiß ich nicht weiter. Schick halt mal Deine ganze Datei. Ggf. ge-zipped.

cu, Bernd


 Bild

Beiträge aus den Excel-Beispielen zum Thema "aus zwei Spalten eine machen"