methode Find

Status
Niet open voor verdere reacties.

franzeman

Gebruiker
Lid geworden
2 sep 2006
Berichten
98
Hallo VBA'ers,

Krijg een macrootje niet aan de praat.
Wil in een bereik bij alle laatste celposities per rij met specifieke waarden een datum koppelen. Lukt helaas niet.

Wie helpt mij

Groetjes van Franzeman
 

Bijlagen

  • test.zip
    7,9 KB · Weergaven: 13
Leg dit eens wat beter uit:

"Van alle ingaven (in C7:O27) mogen alleen de meest rechtse waarden per rij - tussen 1 en 9 én de waarde 'x' - gedateerd worden in kolom B."

Onder welke voorwaarde(n) moet er wat gedaan worden?
 
Leg dit eens wat beter uit:

"Van alle ingaven (in C7:O27) mogen alleen de meest rechtse waarden per rij - tussen 1 en 9 én de waarde 'x' - gedateerd worden in kolom B."

Onder welke voorwaarde(n) moet er wat gedaan worden?

Antwoord:
Ik wil dat alléén de cellen met een geldige waarde (1 t/m 9 en x) een datumwaarde in kolom B (in dezelfde rij) krijgen. Die datum is natuurlijk de corresponderende datum (in die kolom) met rij 3.
Tevens wil ik dat altijd de laatste geldige waarde uit die rij wordt gekozen.

Ik hoop dat het nu duidelijker is(!?)

Groetjes van Franzeman
 
Code:
Sub Macro1()

    Dim r As Range
    Dim i As Integer
    Dim bGeldig As Boolean

    For Each r In Range("P7:P27")

        If r.End(xlToLeft).Column > 2 Then

            'geen lege rij

            For i = 1 To 14
                Select Case r.Offset(0, -i).Value

                Case 1 To 9, "x"
                    Range("B" & r.Row).Value = Cells(3, r.Offset(0, -i).Column).Value
                    GoTo here

                End Select
            Next
        End If
here:
    Next r

End Sub

Wigi
 
Code:
Sub Macro1()

    Dim r As Range
    Dim i As Integer
    Dim bGeldig As Boolean

    For Each r In Range("P7:P27")

        If r.End(xlToLeft).Column > 2 Then

            'geen lege rij

            For i = 1 To 14
                Select Case r.Offset(0, -i).Value

                Case 1 To 9, "x"
                    Range("B" & r.Row).Value = Cells(3, r.Offset(0, -i).Column).Value
                    GoTo here

                End Select
            Next
        End If
here:
    Next r

End Sub

Wigi


Bedankt Wigi,

Dit bedoel ik inderdaad. Het maakt deel uit van een planning die ik heb gemaakt.
Als je jouw code ziet, lijkt het zo eenvoudig, maar ik kreeg het zelf niet volledig voor elkaar. En zeker niet met deze supersnelle code.

Er is echter nog één probleempje, dat, wat mij betreft, opgelost moet worden:
Als bij één enkele geldige cel in een rij de celinhoud wordt gewist, blijft de datum in kolom B staan. Die zou dan eigenlijk ook moeten verdwijnen.
Dat zou mooi zijn.
Ik kan natuurlijk steevast aan het begin van de code kolom B leegmaken, maar dat is misschien minder mooi gecodeerd(?).

Groetjes van Franzeman
 
Dan moet je deze code omzetten naar een Worksheet_Change event.

Zoiets heb ik al eens geschreven voor jou, nog niet zo lang geleden.

Wigi
 
Dan moet je deze code omzetten naar een Worksheet_Change event.

Zoiets heb ik al eens geschreven voor jou, nog niet zo lang geleden.

Wigi

Inderdaad! Ook een mogelijkheid.
Ga ik proberen. Nogmaals bedankt en ik meld hierbij de vraag af als opgelost.

Met vr. gr. ,
Franzeman
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan