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

Range bepalen

Status
Niet open voor verdere reacties.

Scallebe

Gebruiker
Lid geworden
29 okt 2014
Berichten
528
Volgende vraag dan :

Ik heb een lijn (Selection.ClearContents) toegevoegd in de code die ik van Cobbe heb gekregen :

PHP:
Sub Macro1()
'
' Macro1 Macro
'
 
'
    Rows(ActiveCell.Row).Copy
    Rows(ActiveCell.Row).Insert Shift:=xlDown
    Application.CutCopyMode = False
    Selection.ClearContents
End Sub

Dit werkt omdat ik eerst bijvoorbeeld de cel A5 selecteer, dan de macro uitvoer die als laatste actie (Selection.ClearContents) de cel leeg maakt.

Ik wil nu in die aangemaakte rij meerdere cellen leegmaken. Dit zijn de cellen waar de gegevens worden ingevoerd. De cellen die formules bevatten mogen uiteraard niet leeg gemaakt worden.

De resultaten komen toch automatisch op 0 wanneer ik de "inputcellen" leeg maak.

m.a.w. kan ik de opdracht "Selection.ClearContents" naar specifieke cellen laten verwijzen in de actieve rij?

Bedankt

Pascal
 
Code:
Cells(ActiveCell.Row, gewenst kolomnummer).ClearContents

mvg
Leo
 
Wat zijn dat *** toch voor toeren? Als het antwoord op uw vraag u niet bevalt moet je dat gewoon laten weten en niet gewoon negeren en de vraag in een nieuwe draad openen.
 
Leo,

Waarschijnlijk verwijs ik op de verkeerde manier naar de kolom

Want zo werkt het niet.

PHP:
Cells(ActiveCell.Row, C).ClearContents

En voor meerder kolommen?

Zo werkt het ook niet

PHP:
Cells(ActiveCell.Row, A, C, E, F, K, L, Q, R, S, T, V, W).ClearContents

Greetz
 
de letters vervangen door cijfers, 1 voor A enzoverder

mvg
Leo
 
Leo,

Ik krijg een foutmelding :

PHP:
Sub Macro1()
'
' Macro1 Macro
'
 
'
    Rows(ActiveCell.Row).Copy
    Rows(ActiveCell.Row).Insert Shift:=xlDown
    Application.CutCopyMode = False
    Cells(ActiveCell.Row, 1, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16).ClearContents
End Sub

"Cells" gaat blauw oplichten als VBA opengaat



:(
 
Niet erg vriendelijk van je m.b.t. Cobbe.
Maar als je zoekt naar een mogelijkheid om op de actieve regel alle cellen leeg te maken die geen formule bevatten kan je dit doen:
Code:
For x = 1 To 26
    If Not Cells(ActiveCell.Row, x).HasFormula Then
        Cells(ActiveCell.Row, x).ClearContents
    End If
Next x
Deze kijkt naar de cellen A t/m Z op de actieve regel.
 
Leo,

Dit was echt niet de bedoeling naar Cobbe toe, ik ben hier al dikwijls goed geholpen geweest door iedereen die al gereageerd heeft op mijn vragen. Ik kan Cobbe geen persoonlijk berichtje sturen, dus ik weet niet of hij dit zal lezen. Ik zal een nieuwe vraag stellen speciaal gericht aan hem.

Maar 1000 X excuses.

Uw code om de cellen uit sluiten die formules bevatten werkt perfect.

Kan ik ook bepaalde kolommen die geen formule hebben uitsluiten? Ik heb er namelijk drie die een gegevensvalidatie hebben en die cellen zijn met een standaardwaarde ingesteld en die mogen dus niet leeg gemaakt worden.

Of kan ik in plaats van die 3 cellen leeg te maken een standaard waarde toekennen?

bv :

De gevensvalidatie in kolom 2 heeft de volgende mogelijkheden : -- CODE --, UW, WM, WJ en WMU
Ik wil nu in plaats van die cel leeg te maken de standaardwaarde -- CODE -- geven.

Bedankt
 
Vorige keer heette ik nog geen Leo en volgens mij nu nog steeds niet ;)

Uiteraard kan je na de loop die het leegmaken regelt iedere cel die je maar wilt een waarde geven.
Wat kolom 2 betreft zou dat zo gaan:
Code:
Cells(Activecell.Row, 2) = "-- CODE --"
 
Geen probleem :)
 
Ed,

Fantastisch

Het werkt.

Nog 1 klein vraagje

Kan ik in een formule een cel indien de waarde voldoet?

bv : Als ik in cel A3 "UW" selecteer dan zou hij automatisch naar de cel moeten gaan waar een waarde moet ingevuld worden, in dit geval naar cel A5

ik weet dat ik zo moet beginnen : =ALS(A3="UW";?????;!!!!!)

Voor de ????? zou ik dus de functie willen zetten die de cel A5 selecteerd en voor de !!!!! de functie om niets te doen.

Bedankt

Pascal
 
Met een functie kan je alleen bepalen wat er in de actieve cel moet gebeuren. Wat je wil kan wel maar zal op een andere manier gedaan moeten worden. Geldt je vraag alleen voor cel A3 of voor de gehele kolom A?
 
Ed,

Ik heb me vergist.

Met de waarde "UW" moet ik niet naar cel A5 maar naar cel B5.

Ik selecteer dus in A5 "uw" (is gegevensvalidatie) dan moet hij automatisch naar cel B5 gaan.

Ik zet dus de eventuele formule in B5.

De cel B5 moet dus geselecteerd worden als de waarde in A5 "uw" is.

Thanks
 
Ok, maar dan blijft mijn vraag staan:
Geldt je vraag alleen voor cel A5 of voor de gehele kolom A?

Wees ook duidelijk of het "UW" is of "uw".
Of zijn beide mogelijk?
Dat luistert allemaal erg precies en in #12 heb je het over "UW" en nu over "uw".
 
Laatst bewerkt:
Ed,

Je heb gelijk, het is "UW". Er zijn nog meerdere mogelijkheden (4) maar eens ik weet hoe het moet voor "UW" dan kan ik de formule in de andere cellen aanpassen met de juiste gegevens.

indien "UW" dan komt de formule in B5
indien "WM" dan komt de formule C5
enz...

Het doel blijft voor de 4 kolommen hetzelfde. selecteer ik "UW" dan zou de cel B5 moeten geselecteerd worden, selecteer ik "WM" dan zou de cel C5 moeten geselecteerd worden enz...

Mijn gegevensinvoer begint in rij 5

de formule zou dus in cel B5, C5, enz staan (voor rij 5) en dus inderdaad ook voor de rest van de kolom geldig zijn.

met een ctrl + D kan ik dan de formule naar beneden kopiëren voor alle actieve rijen.

Greetz
 
Ed,

In ACCESS bestaat er een functie die een veld activeert indien er een ander veld vodoet aan een bepaalde voorwaarde.

Ik selecteer bv een naam uit een dropdown lijst dan springt de cursor automatisch naar opgegeven veld met SETFOCUS

Bestaat er ook zoiets in Excel?
Daar komt het eigenlijk op neer.

Greetz
 
Ik zei al dat dat met een formule niet kan en dat het daarom op een andere manier moet. Probeer dit eens. Het is een event macro dus die moet je niet in een module maar achter het betreffende werkblad plaatsen:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column > 1 Then Exit Sub
    Select Case Cells(Target.Row, 1)
        Case "UW"
            Cells(Target.Row, 2).Activate
        Case "WM"
            Cells(Target.Row, 3).Activate
    End Select
End Sub
 
Ed,

Fantastisch...

Dit is mijn formule geworden :

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column > 16 Then Exit Sub
    Select Case Cells(Target.Row, 16)
        Case "UW"
            Cells(Target.Row, 17).Activate
        Case "WM"
            Cells(Target.Row, 18).Activate
        Case "WJ"
            Cells(Target.Row, 19).Activate
        Case "WMU"
            Cells(Target.Row, 20).Activate
    End Select
End Sub

Ik heb de juiste kolom-cijfers ingegeven en het werkt perfect.

Eerst was er nog de fout > 1 en heb dat dan vervangen door > 16 en nu werkt het perfect.

Ik begin het zo stilletjes aan meer en meer te begrijpen.

Hartelijk dank en tot ziens

Pascal
 
Ik zei al dat dit soort dingen erg nauw luistert. Je hebt nu andere kolommen gebruikt dan in je vraagstelling. Die > 16 kan je dan beter vervangen door <> 16.
Maar je leert er wel van zo :)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan