Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1168to1172
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
Inhaltsverzeichnis

Übereinstimmung in variablem Range feststellen

Übereinstimmung in variablem Range feststellen
JürgenH
Liebe Excelgemeinde,
ich habe folgendes kleines Problem:
wie kann ich in einer Ereignisprozedur (before rightclick) mit VBA feststellen, ob in einem ausgewählten und markierten Range von Zellen in einer bestimmten Spalte (Spalten-Offset +6 von erster ausgewählter Zelle) gleiche/identische Einträge vorhanden sind? Wenn ja, will ich weiterarbeiten, wenn nein, soll die Msgbox "Auswahlmenge nicht homogen" ausgegeben und die Verarbeitung beendet werden.
wer kann helfen? Vielen Dank.
Beste Grüße
Jürgen

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Übereinstimmung in variablem Range feststellen
31.07.2010 16:13:42
Tino
Hallo,
meinst Du so?
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim rngBereich As Range
Dim booHomogen As Boolean

Set rngBereich = Intersect(Selection, ActiveSheet.UsedRange)

If Not rngBereich Is Nothing Then
    Cancel = True 'rechtsklick abbrechen 
    With Application.WorksheetFunction
        For Each rngBereich In Selection
            If rngBereich <> "" Then
                If .CountIf(Selection.Offset(0, 6), rngBereich) > 0 Then
                        MsgBox "Auswahlmenge homogen", vbInformation
                        booHomogen = True
                        'hier weiter arbeiten 
                        '... 
                        '... 
                        Exit For 'Schleife verlassen 
                End If
            End If
        Next rngBereich
    End With
    
    If Not booHomogen Then
        MsgBox "Auswahlmenge nicht homogen", vbExclamation
    End If
End If
End Sub
Wenn der markierte Bereich aber zu groß wird, kann es lang dauern,
dann würde ich dies über ein Array machen, dies wird schneller durchlaufen.
Gruß Tino
Anzeige
AW: Übereinstimmung in variablem Range feststellen
31.07.2010 16:34:30
JürgenH
Hallo Tino, erst einmal Danke für die schnelle Antwort.
die ausgewählten Bereiche sind immer klein und handlich.
Ich bekomme mit Deiner Lösung immer "homogen" und muss mich ein wenig deutlicher fassen.
Der Benutzer markiert z.B. A1-G22. In Spalte F steht ein Credit-Debit-Indikator. Enthalten alle Zellen im markierten Bereich entweder ausschließlich ein "C" oder ausschließlich ein "D" in der Spalte F, ist die Auswahl homogen. Markiert der Benutzer einen Bereich, in dem sowohl C als auch D-Zeilen stehen, ist die Auswahl nicht homogen und es muss ein Fehler kommen.
Kann leider keine Beispieldatei hochladen, da ich diese im Büro habe.
Gruß
Jürgen
Anzeige
AW: Übereinstimmung in variablem Range feststellen
31.07.2010 16:49:47
Josef

Hallo Jürgen,
so?

' **********************************************************************
' Modul: Tabelle3 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
  Dim rng As Range, rngC As Range
  Cancel = True
  Set rng = Selection
  If rng.Columns.Count >= 6 Then
    Set rngC = rng.Columns(6)
    If Application.CountIf(rngC, rngC.Cells(1, 1)) < rngC.Cells.Count Then
      MsgBox "Inhomogen"
    Else
      MsgBox "Homogen"
      'weiter...
    End If
  Else
    MsgBox "Bereich nicht auswertbar"
  End If
End Sub

Gruß Sepp

Anzeige
AW: Übereinstimmung in variablem Range feststellen
31.07.2010 17:25:14
JürgenH
Hallo Sepp,
das wars, was ich brauche. Einfache Lösungen sind doch immer die besten.
Vielen Dank an alle.
Schönes Wochenende
Jürgen
AW: Übereinstimmung in variablem Range feststellen
31.07.2010 16:30:57
Matthias
Hallo
Keine Ahnung, ob ich Dich richtig verstanden habe.
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Selection(1).Value  Selection(1).Offset(, 6).Value Then
MsgBox "Auswahlmenge nicht homogen"
Exit Sub
Else
MsgBox "hier mach ich weiter"
End If
End Sub
Ich versteh nur nicht diesen Satz
ob in einem ausgewählten und markierten Range von Zellen in einer bestimmten Spalte (Spalten-Offset +6 von erster ausgewählter Zelle ?
warum markierst Du denn ein Range von Zellen, wenn Du nur von der ersten ausgewählten Zelle 6 Spalten nach rechts prüfen willst?
Gruß Matthias
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige