• 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.

VBA code : Op huidige regel kijken in kolom W

Status
Niet open voor verdere reacties.

Jap3600

Gebruiker
Lid geworden
19 mei 2015
Berichten
91
Beste Allemaal,

Ik ben in excel bezig met een vba code maar kom er maar niet uit.
Het gaat er over dat ik een code heb die indien op de huidige regel in kolom W het woord "Fout" staat hij een msbox geeft.
Onderstaande heb ik al maar dit werkt dus allemaal niet... hrrrr...:evil:

Code:
ActiveCell.Offset(1, 22).Select
If Range(ActiveCell) = "Fout" Then  'Select

  MsgBox "Maximaal 1 bestelling !", vbExclamation, "Bestelfout"
  Me.Bestelling_B120.SetFocus
  Else
  End If

Wie kan me verder helpen....
 
Probeer het zo maar eens:
Code:
If Cells(ActiveCell.Row, 23) = "Fout" Then
    MsgBox "Maximaal 1 bestelling !", vbExclamation, "Bestelfout"
    Me.Bestelling_B120.SetFocus
    Exit Sub
End If
 
Laatst bewerkt:
Beste edmoor,

Als eerste mijn excuus voor mijn late antwoord. Kon door omstandigheden niet eerder testen.
Bij deze dus nog een welgemeende dank voor je zeer snelle antwoord. Werkt perfect.... :thumb:


Loop direct tegen het volgende aan wat ik nu gemaakt heb.
Heb onderstaande code welke ik toepas voor de cellen row, 23 tem 29. Werkt goed maar het moet toch ook mogelijk zijn het bereik in één keer aan te geven. Zou je me hierin ook verder kunnen helpen??

Code:
Cells(ActiveCell.Row, 27).Select
With Worksheets(Box)
Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Application.CutCopyMode = False
End With
 
In je voorbeeld is selecteer je kolom AA (27) op de huidige regel. Ik begrijp niet helemaal wat je dan met die 23 t/m 29 bedoelt.
 
Beste Edmoor,

Klopt helemaal. En ik doe dit nu op de huidige regel voor de cellen in kolom W (23) tot en met kolom AC (29). De code loopt nu dus 7 x.
Wat ik wil bereiken dat hij op de huidige regel in 1x de cellen van kolom W tem AC selecteert en erna als waarde plakt.

Ik hoop dat ik nu heb kunnen aangeven wat ik graag wil bereiken.
 
Code:
range("w23:ac29") =range("w23:ac29").value
 
Ik lees de vraag anders.:confused:

Code:
Cells(ActiveCell.Row, 23).Resize(, 7) = Cells(ActiveCell.Row, 23).Resize(, 7).Value
 
Ik ook, maar dient als voorbeeld om er zelf mee te stoeien.
 
Beste HSV, VenA en edmoor,

Als eerste dank voor jullie hulp. :thumb:

Ben blij met de code van VenA, deze loopt snel en fijn door. Echter wel cel per cel.

Had al iets geprobeerd van
Code:
Cells(ActiveCell.Row, 23:29).Resize(, 7) = Cells(ActiveCell.Row, 23:29).Resize(, 7).Value
maar dat werkt niet....
Cel per cel dus...
 
en wat doet deze:
Code:
Cells((ActiveCell.Row, 23),(ActiveCell.Row, 29)) = Cells((ActiveCell.Row, 23),(ActiveCell.Row, 29)).Value
 
Beste Haije,

Die code had ik ook al zo geprobeerd maar dat levert een syntaxfout op...

Toch bedankt voor het meedenken.
 
Wat wil je nu eigenlijk bereiken? Wat bedoel je met cel per cel dus? Plaats anders even een voorbeeldbestandje.
 
Wat ik wil bereiken is dat hij de cellen van de actieve rij kolom W tot en met kolom AC gaat vervangen door waarden. Dus de uitkomsten van formules omzetten naar waarden.

Kolom W is kolomindex 23
Kolom AC is kolomindex 29
Regel is de actieve rij. Kan dus variëren ....

Op het moment gaat het ook met de voor jou gegeven code natuurlijk. Maak er gewoon 7 regels van. Eigenlijk vroeg ik me af of dit ook kan door deze te combineren in één regel.

Code:
Cells(ActiveCell.Row, 23).Resize(, 7) = Cells(ActiveCell.Row, 23).Resize(, 7).Value
Cells(ActiveCell.Row, 24).Resize(, 7) = Cells(ActiveCell.Row, 24).Resize(, 7).Value
Cells(ActiveCell.Row, 25).Resize(, 7) = Cells(ActiveCell.Row, 25).Resize(, 7).Value
Cells(ActiveCell.Row, 26).Resize(, 7) = Cells(ActiveCell.Row, 26).Resize(, 7).Value
Cells(ActiveCell.Row, 27).Resize(, 7) = Cells(ActiveCell.Row, 27).Resize(, 7).Value
Cells(ActiveCell.Row, 28).Resize(, 7) = Cells(ActiveCell.Row, 28).Resize(, 7).Value
Cells(ActiveCell.Row, 29).Resize(, 7) = Cells(ActiveCell.Row, 29).Resize(, 7).Value
 
Code:
Cells(ActiveCell.Row,23).resize(7,7)=cells(ActiveCell.Row, 23).resize(7,7).Value
 
Jap,

plaats eens een voorbeeldbestand......
 
Beste allemaal,

Het schaamrood staat me op de wangen... :evil:

De eerst gegeven code van VenA was dus al waar ik naar op zoek was....

Code:
Cells(ActiveCell.Row, 23).Resize(, 7) = Cells(ActiveCell.Row, 23).Resize(, 7).Value

Ik heb gewoon niet opgelet.... en kom er pas nu achter nu ik de code die HSV gaf nogmaals goed bekijk en vergelijk met die van VenA. Heb ook even een voorbeeldje heb geplakt.
Mijn excuus naar jullie allen.

Bekijk bijlage voorbeeld01.xlsm
 
Laatst bewerkt:
Wat moet het nu worden?
Kan het helaas niet meer volgen.
Gecombineerd staat het in #14.

Met alle voorbeelden moet je het nu zelf ook wel kunnen oplossen.
 
Zeker weten HSV.

Ik heb het inmiddels in mijn eigen bestand gezet. (De code zoals in #14 heeft me doen wakker schudden!) :d
Nogmaals sorry voor de verwarring waar ik voor gezorgd heb.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan