kolommen opvullen met macro

Status
Niet open voor verdere reacties.

brejen

Gebruiker
Lid geworden
21 apr 2007
Berichten
111
zie bijgevoegd bestandje: ik zou het volgende willen doen. in kolom C de maand zoeken en dan in de kolom rts van de tabel de maand laten verschijnen. in het bestandje wordt dat duidelijk : als in kolom C een maand gevonden wordt bijvoorbeeld januari (rood gemaakt) dan moet naast de onderliggende kolom overal januari komen staan (groen gemaakt in voorbeeld). voor februari hetzelfde enz. De plaats waarop de maand staan in kolom C kan varieren ifv de lengte van de kolom. ik kan dus niet naar een vaste cel verwijzen.
hoe pak ik dit het beste aan?
 

Bijlagen

  • bewerk.xlsm
    27 KB · Weergaven: 29
Verwijder eerst het wachtwoord van je document voordat je deze hier plaatst.
 
aangepast bestandje toegevoegd; sorry.
 

Bijlagen

  • bewerk zonder paswoord.xlsm
    20,5 KB · Weergaven: 41
als ik dit nu in een werklbad wil uitbreiding naar een heel jaar moet ik dan dat woordje Maand: van cel A295 helemaal onderaan plaatsen of moet er in de code ook iets gewijzigd worden?
 
Juist.
En aan de code hoef je dan niets te veranderen.
De bedoeling van dat woordje is dat de code een eindpunt kan bepalen.
Maar de code zelf is kort en simpel, mocht er toch iets aangepast moeten worden.
 
Laatst bewerkt:
ik heb de macro in het originele bestand waar ik het ga gebruike gekopieerd. na maand 'december' heb ik het woordje 'maand:' geplakt. de macro draait nu al ruim een kwartier. is dat normaal? ik vermoed dat de macro ergens op vastgelopen is.
 
Ik had het dus over het document dat je plaatste, daarin werkt het gewoon goed.
VBA is altijd erg precies en in dit geval nogal afhankelijk van positionering.
Kennelijk is je echte document anders.
 
Als je een beetje meer tempo wil, dan kan je beter een array gebruiken.

Code:
Sub VenA()
Dim r As Range, j As Long, c00 As String, ar
  With Sheets("Bewerk.")
    ar = .UsedRange
    For j = 1 To UBound(ar)
      If LCase(Left(ar(j, 1), 5)) = "maand" Then
        c00 = ar(j, 3)
        If r Is Nothing Then Set r = .Cells(j - 2, 7).Resize(4) Else Set r = Union(r, .Cells(j - 2, 7).Resize(4))
      End If
      ar(j, 7) = c00
    Next j
    .UsedRange = ar
    r.ClearContents
  End With
End Sub
 
ik heb deze laatste macro gerund en die lijkt het te doen. enkel: de maanden worden in kolom G ingevuld en dat zou in H moeten zijn. volstaat het dat ik al de cijfers 7 in de macro vervang door 8?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan