Thema Datum  Von Nutzer Rating
Antwort
Rot Wie kann ich ein Range in ein Cells umwandeln
13.08.2021 17:11:48 Bernd
NotSolved
13.08.2021 17:39:53 Gast38437
NotSolved

Ansicht des Beitrags:
Von:
Bernd
Datum:
13.08.2021 17:11:48
Views:
1111
Rating: Antwort:
  Ja
Thema:
Wie kann ich ein Range in ein Cells umwandeln

Hi

Ich habe ein Programm abgeändert. in dem ich eine Spalte (ursprünglich "B") nach Duplikaten absuche und diese mit verschiedenen Farben einfärbe.

Nun möchte ich dies mit Variablen variabler gestalten.

Ich möchte die Spalte über eine Eingabe festlegen und diese dann als Suchparameter einstellen.

Anbei der Unvollständige Code:

Sub Doppelte_markieren()

    Dim lngZeile As Long
    Dim lngEnde As Long
    Dim strValue As String
    
    Dim objDupList As Object
    Dim arrFarben As Variant
    Dim intFarben As Integer
    
   Set xRg = Application.InputBox("please select the data range:", , xTxt, , , , , 8)
   
   Spalte = xRg.Column
   
   
   
    
    arrFarben = Array(3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56)   'Aufzählung der ColorIndex-Werte entsprechend anpassen
    
    Set objDupList = CreateObject("Scripting.Dictionary")    'Liste der Duplikate (Key) mit ColorIndex (Item)
    
    lngEnde = Cells(Rows.Count, Spalte).End(xlUp).Row
    
 

 

Bis dahin scheint es zu Funktionieren.

Der folgende Teil ist der den ich nicht verändern kann:

 For lngZeile = 1 To lngEnde
        strValue = Cells(lngZeile, Spalte).Text
        If strValue <> "" Then      'Test Zelle nicht Leer
            If Application.CountIf(Range("B2:B" & lngEnde), strValue) > 1 Then
                If objDupList.Exists(strValue) Then
                    Cells(lngZeile, "B").Interior.ColorIndex = objDupList.Item(strValue)
                Else
                    Cells(lngZeile, "B").Interior.ColorIndex = arrFarben(intFarben)
                    objDupList.Add strValue, arrFarben(intFarben)
                    intFarben = intFarben + 1
                    If intFarben > UBound(arrFarben) Then intFarben = 3
                End If
            End If
        End If
    Next
End Sub

 

 

 

Bei "If Application.CountIf(Range("B2:B" & lngEnde), strValue) > 1 Then"

müsste ich anstelle der Range("B2:B" & lngEnde) die Variable "Spalte" einbauen. durch die Cells Formatierung die ja erst die Zeile und dann die Spalte beschreibt, bekomme ich es nicht zusammen.

Bitte mit Erklärung auflösen.

Danke

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Wie kann ich ein Range in ein Cells umwandeln
13.08.2021 17:11:48 Bernd
NotSolved
13.08.2021 17:39:53 Gast38437
NotSolved