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

Macro

Status
Niet open voor verdere reacties.

marina_peter

Gebruiker
Lid geworden
8 sep 2000
Berichten
61
Geleerden

Ik heb een macro gemaakt die als volgt werkt....
Excel selecteert in kolom A alle voorkomende waarden en zet daarna in kolom B (na toepassing formule) de nieuwe waarde neer.

Als ik echter de macro de volgende keer wil gebruiken blijkt dat de macro de waardes vasthoudt van die eerste selectie en het "zoekcriterium" bij die waarde van de eerste zoekactie ophoudt en voor zover nodig niet verder in kolom A zoekt of er nog waardes voorkomen.

Voorbeeld
Kolom A had eerst 114 rijen waarop de macro wordt toegepast, prima zover!

2x gebruken macro
Kolom heeft nu 221 rijen, de macro loopt echter maar tot 114. Hij houdt dus de selectie vast, en dit moet nu juist niet. Hoe los ik dit op.

Hieronder copy paste van die macro

Workbooks.Open FileName:="C:\sv-dagen\sv-dagen bo4.xls"
Columns("B:B").EntireColumn.AutoFit
Range("C1").Select
Selection.Font.Bold = True
ActiveCell.FormulaR1C1 = "Dagen"
Range("C2").Select
ActiveCell.FormulaR1C1 = "=LEN(RC[-1])"
Selection.AutoFill Destination:=Range("C2:C114")
Range("C2:C114").Select
Columns("B:B").Select
Selection.Replace What:="0", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Range("C2").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub
 
Marina-peter,

zonder testen... denk ik dat je er zo moet komen:

Workbooks.Open FileName:="C:\sv-dagen\sv-dagen bo4.xls"
Columns("B:B").EntireColumn.AutoFit
Range("C1").Select
Selection.Font.Bold = True
ActiveCell.FormulaR1C1 = "Dagen"
Range("C2").Select
ActiveCell.FormulaR1C1 = "=LEN(RC[-1])"
Selection.AutoFill Destination:=Cells(2, 3).Resize(1, Range("A65536").End(xlUp).Row-1)
Range("C2:C114").Select
Columns("B:B").Select
Selection.Replace What:="0", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Range("C2").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub
 
Goede middag,

Ik ben helemaal niet GELEERD en zeker niet op het gebied van VBA.

Daarom zou ik dit als volgt oplossen:

- De formule éénmaal invullen in C2
- De laatste rij van kolom B bepalen
- C2 kopiëren naar C3 tot einde

De macro zou dit als volgt kunnen oplossen:

Sub Macro1()
'Formule invullen in C2
Range("C2").FormulaR1C1 = "=LEN(RC[-1])"
'Bepalen laatste rij in kolom B
LaatsteRijNummer = Range("B65536").End(xlUp).Row
'De formule uit C2 kopiëren naar C3 tot C&LaatsteRijNummer
Range("C2").Copy Destination:=Range("C3:C" & LaatsteRijNummer)
End Sub

Toch ga ik de medthode van Luc ook eens uittesten ...
kwestie van ietsje meer geleerd ('t is te zeggen minder dom) te worden!

Groetjes - Marrosi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan