Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Problem mit Intersect
#1
Bin gerade dabei, mir ein weiteres Tool zu programmieren und habe ein Problem, zu dem mir nix einfällt.

Im ersten Tabellenblatt steht eine Liste, aus der über Intersect ein Wert ausgewählt wird, der dann in ein anderes Arbeitsblatt übertragen werden soll.
Dieser sieht folgendermaßen aus:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Range("C4").ClearContents

    If Not Intersect(Target, [C6:C12]) Is Nothing Then
    
        With Range("C4")
            If Application.CountBlank(Range(.Address)) <> 0 Then
                .SpecialCells(xlCellTypeBlanks)(4, 3).Value = Target.Value
            Else
                MsgBox "Keine weiteren leeren Zellen in Bereich " & .Address & " gefunden !"
            End If
        End With
    End If
End Sub

Öffne ich meine Excel Arbreitsmappe direkt aus dem Explorer, funktioniert alles auch prächtig.
wird es jedoch über eine  Befehlsschaltfläche aus einer anderen Arbeitsmappe geöffnet, funktioniert die Auswahl nicht. Huh

Hier noch der Code hinter der Schaltfläche, mit der die Arbeitsmappe geöffnet wird:
Code:
Sub Schaltfläche7_BeiKlick()
Dim ExApp As Application
Dim WB As Workbook
Dim Pfad As String

   Pfad = "C:\Users\Frank\Documents\Aktien\ShareselectTest\Chartanalyse"
   Set ExApp = New Excel.Application
   Application.WindowState = xlNormal
   
   With ExApp
       .EnableEvents = False
       Set WB = .Workbooks.Open(Pfad)
       .Visible = True
   End With
   
End Sub

Wer hat 'ne Idee?
Antworten Top
#2
Hallo Lapunta,
ich denke mal, wenn Du mit enableevents=false die Ereignisse wegschaltest, wird Selection_change auch nicht ausgelöst.
Gruß der ALteDresdner
Gruß der AlteDresdner (Win11, Off2021)
Antworten Top
#3
Hallo,

wenn Du es so programmierst
   With ExApp
      .EnableEvents = False
brauchst Du Dich auch nicht wundern. Wink

Wozu brauchst Du überhaupt eine neue Excelinstanz?

Gruß Uwe
Antworten Top
#4
Hallo,

alles sehr mystisch. Das Makro reagiert auf Änderungen in der Tabelle, in der es steht. Also muß erstmal eine Zelle angeklickt werden , hier im Bereich C6:C12! Sobald das Makro eine gefüllte Zelle in dem Bereich findet, reagiert es und steigt wieder aus, weil jede Änderung, die das Makro durchführt, zu einem Neustart des Makros führt. Hier mal eine wichtige Änderung:


Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
Range("C4").ClearContents

    If Not Intersect(Target, [C6:C12]) Is Nothing Then
    
        With Range("C4")
            If Application.CountBlank(Range(.Address)) <> 0 Then
                .SpecialCells(xlCellTypeBlanks)(4, 3).Value = Target.Value
            Else
                MsgBox "Keine weiteren leeren Zellen in Bereich " & .Address & " gefunden !"
            End If
        End With
    End If
Application.EnableEvents = True
End Sub
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste