• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Wie kan mij helpen met een VBA script

  • Onderwerp starter Onderwerp starter Eggie
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Eggie

Gebruiker
Lid geworden
25 jan 2007
Berichten
74
Hallo, ik heb een vba script nodig waarbij op basis van de waarden van bijv. kolom a en b een waarde in kolom c moet komen.

Dus bijvoorbeeld als de waarde in kolom a is 1 en in kolom b = 1, dan moet op die regel in c "ok" komen.

Aangezien het om een groot aantal combinaties gaat is een gewone IF formule o.i.d. niet mogelijk.

Zou iemand voor mij een opzet kunnen maken voor zijn script, dan kom ik er verder wel uit.

Heel erg bedankt, groeten Eggie
 
Kijk hier eens naar:
Code:
Sub ok()
Dim c As Range

For Each c In Range("A:A")
    If c.Value = c.Offset(0, 1).Value Then c.Offset(0, 2) = "OK"
Next
    
End Sub
Code gaat alles in kolom A:A af en kijkt of de inhoudt het zelfde is als dat van kolom b. zo ja dan wordt er in kolom c een ok ingevuld.

Succes.
 
Hallo Ferenc,

heel erg bedankt voor je snelle reactie.
Er is echter 1 probleem, het gaat erom dat als bijv. kolom a en b aan een bepaalde waarde voldoen er in kolom c een zelf te definieren waarde moet komen, dus:

als kolom a is 1 en kolom b = 1, dan c = x
als kolom a is 1 en kolom b = 2, dan c = y
als kolom a is 2 en kolom b = 3, dan c = z etc. etc.

ik had dit in eerste instantie gedaan door een macro op te nemen en dan door het filter steeds aan te passen de waarde in c in te voeren met de "relative reference" functie.
Het probleem echter wat zich dan voordoet is dat de wanneer de eerste regel na toepassing van het filter bijv. 500 is, en ik dan op rij 1 ga staan en met relative reference 1 * naar beneden ga om de goede beginregel te selecteren de macro regel 500 opslaat. Hierdoor werkt de macro niet als ik nieuwe data toevoeg. De macro ziet er nu deels zo uit:

Selection.AutoFilter field:=11, Criteria1:="NL"
Selection.AutoFilter field:=2, Criteria1:="<>"
Range("J1").Select
ActiveCell.Offset(29, 0).Range("A1").Select --> hier gaat t dus mis, ik wil een regel naar beneden vanaf regel 1 maar omdat de eerste regel na het filter 29 is gaat deze altijd 29 regels naar beneden, ook als er andere data is ingevoegd die na t filter bijvoorbeeld op regel 20 begint.
ActiveCell.FormulaR1C1 = "LMY / EDE"
Range("J1").Select
ActiveCell.Offset(29, 0).Range("A1").Select
Selection.Copy
Range("I1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 1).Range("A1").Select
Range(Selection, Selection.End(xlUp)).Select
ActiveSheet.Paste
Range("J1").Select
Application.CutCopyMode = False

Hoop dat iemand me hiermee kan helpen, alvast heel erg bedankt..

Groeten Eggie
 
Sorry Wigi,

maar weet niet wat daar precies mee wordt bedoeld...

Groeten Eggie
 
Sorry Wigi,

maar weet niet wat daar precies mee wordt bedoeld...

Groeten Eggie

Dat je code tussen zgn. code tags plaatst. Dan komt het in een kadertje en wordt het leesbaar. Selecteer je code, en druk op het # teken vlak boven je bericht als je het aanpast.
 
Bij deze, zou je me alsjeblieft kunnen helpen met mijn vraag, dat zou echt heel fijn zijn!

Dank je!

Code:
    Selection.AutoFilter field:=11, Criteria1:="NL"
    Selection.AutoFilter field:=2, Criteria1:="<>"
    Range("J1").Select
    ActiveCell.Offset(29, 0).Range("A1").Select
    ActiveCell.FormulaR1C1 = "LMY / EDE"
    Range("J1").Select
    ActiveCell.Offset(29, 0).Range("A1").Select
    Selection.Copy
    Range("I1").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(0, 1).Range("A1").Select
    Range(Selection, Selection.End(xlUp)).Select
    ActiveSheet.Paste
    Range("J1").Select
    Application.CutCopyMode = False

Probleem zit m dus in die ActiveCell.Offset regels...
Maar dat begreep je natuurlijk al lang :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan