Clever-Excel-Forum

Normale Version: Problem mit Intersect
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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?
Hallo Lapunta,
ich denke mal, wenn Du mit enableevents=false die Ereignisse wegschaltest, wird Selection_change auch nicht ausgelöst.
Gruß der ALteDresdner
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
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