Microsoft Excel

Herbers Excel/VBA-Archiv

wenn Funktion in VBA Code

Betrifft: wenn Funktion in VBA Code von: ANAnas
Geschrieben am: 04.11.2014 09:40:40

Hallo Gemeinde,

mir fehlt im Moment ein wenig das Verständis darüber, wie man 2 Zellen miteinander vergleicht. Desweiteren soll der String erweitert werden, wenn die beiden Zellen gleich sind.

Das sieht in etwa so aus:

0011
0012
0013
0014 - hier soll der String erweitert werden mit 0014-1
0014 - hier soll der String erweitert werden mit 0014-2
0015
0016
...

wenn die Werte nicht gleich sind, soll nichts gemacht werden.
Mit meiner wenn-funktion funktioniert es.
=WENN(UND(C4="I";W4=1;B4=B5);B4&"-1";WENN(UND(C4="I";X4=2);B4&"-2";B4))
könnt ihr mir dabei bitte helfen?

lg

  

Betrifft: AW: wenn Funktion in VBA Code von: Rudi Maintaire
Geschrieben am: 04.11.2014 10:49:10

Hallo,
liest aus A2:Ax und schreibt nach B2:Bx.

Sub ananas()
  Dim oDic As Object, vArr, i As Long, o
  Dim oOut As Object
  Set oDic = CreateObject("scripting.dictionary")
  Set oOut = CreateObject("scripting.dictionary")
  vArr = Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp))
  For i = 1 To UBound(vArr)
    oDic(vArr(i, 1)) = oDic(vArr(i, 1)) + 1
  Next i
  For Each o In oDic
    If oDic(o) > 1 Then
      For i = 1 To oDic(o)
        oOut(o & "-" & Format(i, "000")) = 0
      Next
    Else
        oOut(o) = 0
    End If
  Next
  With Cells(2, 2).Resize(oOut.Count)
    .NumberFormat = "@"
    .Value = WorksheetFunction.Transpose(oOut.keys)
  End With
End Sub
Gruß
Rudi


  

Betrifft: AW: wenn Funktion in VBA Code von: ANAnas
Geschrieben am: 04.11.2014 11:11:46

Hallo Rudi!

Ersteinmal vielen Dank für deine schnelle Hilfe :)
Der Ansatz ist schon nicht schlecht, jedoch nicht zu 100% korrekt...
Das Auslesen aus Spalte A funktioniert nicht ganz. Dein Quellcode schreibt fortlaufend eine Nummer in Spalte B.

Es soll an dem String eine "-01" bzw "-02" angehängt werden, wenn 2 gleiche Zeichenketten untereinander stehen. Sprich an der ersten eine "-01" und an der darunter die "-02".

LG


  

Betrifft: AW: wenn Funktion in VBA Code von: fcs
Geschrieben am: 04.11.2014 11:00:04

Hallo ANAnas,

nachfogend ein Makro mit entsprechender Auswertung.
Falls die Prüfung für Spalte C (3) nicht relevant ist, dann kannst du sie weglassen.

Gruß
Franz

Sub MarkierenMehrfache()
  Dim wks As Worksheet, Zeile As Long, intCount As Integer
  Dim strZelle As String
  Dim SpalteWert As Long, spalteErgebnis As Long
  Set wks = ActiveSheet
  SpalteWert = 2    'Spalte B - Spalte mit zu vergleichenden Werten
  spalteErgebnis = 5 'Spalte E - Spalte mit Ergebnissen - kann auch identisch SpalteWert sein.
  With wks
  For Zeile = 4 To .Cells(.Rows.Count, SpalteWert).End(xlUp)
    
    strZelle = .Cells(Zeile, SpalteWert).Text
    If strZelle = .Cells(Zeile + 1, SpalteWert).Text _
        And .Cells(Zeile, 3).Value = "I" Then
      intCount = intCount + 1
      .Cells(Zeile, spalteErgebnis).Value = "'" & strZelle & "-" & Format(intCount, "0")
    Else
      If intCount > 0 Then
        'Wert ist identisch mit vorheriger Zeile
        .Cells(Zeile, spalteErgebnis).Value = "'" & _
            .Cells(Zeile, SpalteWert).Text & "-" & Format(intCount + 1, "0")
      Else
        .Cells(Zeile, spalteErgebnis).Value = "'" & strZelle
      End If
      intCount = 0
    End If
  Next
  End With
End Sub



  

Betrifft: AW: wenn Funktion in VBA Code von: ANAnas
Geschrieben am: 04.11.2014 11:53:28

Hallo Franz :)
Thats IT! Vielen lieben Dank.

you make my day


 

Beiträge aus den Excel-Beispielen zum Thema "wenn Funktion in VBA Code "