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

Macrootje doet het niet

Status
Niet open voor verdere reacties.

verhoog

Terugkerende gebruiker
Lid geworden
7 nov 2001
Berichten
3.143
Kan iemand mij vertellen waarom de volgende macro niet werkt?
Thanx!


Sub SheetLeegmaken()
'
' SheetLeegmaken Macro
' Macro recorded 19-12-2006 by Fred Verhoog
'

'
Union(Range( _
"C5,F5,I5,L5,O5,R5,U5,X5,AA5,AD5,AG5,AJ5,C8,F8,I8,L8,O8,R8,U8,X8,AA8,AD8,AG8,AJ8,C11,F11,I11,L11,O11,R11,U11,X11,AA11,AD11,AG11,AJ11" _
), Range("C14,F14,I14,L14,O14,R14,U14,X14,AA14,AD14,AG14,AJ14,C17,F17,I17,L17,O17,R17,U17,X17,AA17,AD17,AG17,AJ17" _
), Range("C20,F20,I20,L20,O20,R20,U20,X20,AA20,AD20,AG20,AJ20,C23,F23,I23,L23,O23,R23,U23,X23,AA23,AD23,AG23,AJ23" _
), Range("C26,F26,I26,L26,O26,R26,U26,X26,AA26,AD26,AG26,AJ26,C29,F29,I29,L29,O29,R29,U29,X29,AA29,AD29,AG29,AJ29" _
), Range("C32,F32,I32,L32,O32,R32,U32,X32,AA32,AD32,AG32,AJ32,C68,F68,I68,L68,O68,R68,U68,X68,AA68,AD68,AG68,AJ68" _
), Range("C71,F71,I71,L71,O71,R71,U71,X71,AA71,AD71,AG71,AJ71,C71,F74,I74,L74,O74,R74,U74,x74,AA74,AD74,AG74,AJ74" _
), Range("C77,F77,I77,L77,O77,R77,U77,X77,AA77,AD77,AG77,AJ77,C80,F80,I80,L80,O80,R80,U80,x80,AA80,AD80,AG80,AJ80" _
), Range("C83,F83,I83,L83,O83,R83,U83,X83,AA83,AD83,AG83,AJ83,C86,F86,I86,L86,O86,R86,U86,x86,AA86,AD86,AG86,AJ86" _
), Range("C89,F89,I89,L89,O89,R89,U89,X89,AA89,AD89,AG89,AJ89,C92,F92,I92,L92,O92,R92,U92,x92,xAA92,AD92,AG92,AJ92" _
), Range("C95,F95,I95,L95,O95,R95,U95,X95,AA95,AD95,AG95,AJ95,C105,F105,I105,L105,O105,R105,U105,x105,AA105,AD105,AG105,AJ105" _
), Range("C108,F108,I108,L108,O108,R108,U108,x108,AA108,AD108,AG108,AJ108,C111,F111,I111,L111,O111,R111,U111,x111,AA111,AD111,AG111,AJ111" _
), Range("C114,F114,I114,L114,O114,R114,U114,x114,AA114,AD114,AG114,AJ114,C117,F117,I117,L117,O117,R117,U117,x117,AA117,AD117,AG117,AJ117" _
), Range("C120,F120,I120,L120,O120,R120,U120,x120,AA120,AD120,AG120,AJ120,C123,F123,I123,L123,O123,R123,U123,x123,AA123,AD123,AG123,AJ123" _
), Range("C126,F126,I126,L126,O126,R126,U126,x126,AA126,AD126,AG126,AJ126,C129,F129,I129,L129,O129,R129,U129,x129,AA129,AD129,AG129,AJ129" _
), Range("C132,F132,I132,L132,O132,R132,U132,x132,AA132,AD132,AG132,AJ132")).Select
Range("AJ132").Activate
Selection.ClearContents
End Sub
 
Knip die range eens op in stukken.

Selecteer de range ook niet, je kan gewoon Range("A1").ClearContents doen. (voor de juiste range dan wel).

Wigi
 
Knip die range eens op in stukken.

In hoeveel stukken (dus waar breek ik m af)? En dan nog hoe? Welke code gebruik ik daarvoor? Misschien kun je een klein stukje voordoen?

Selecteer de range ook niet, je kan gewoon Range("A1").ClearContents doen. (voor de juiste range dan wel).

Wigi

Ik heb eerst wat getest met "Macro opnemen", en dit is de code die VB zelf aanmaakte. Ik heb alleen getracht de Range verder uit te breiden, maar zoals je al doorhebt ben ik niet zo thuis in VB-schrijven.
 
Wat wil je met de macro doen.
De macro selecteert uitsluitend cellen en maak daar een groep van.

Ik zie dat je steeds 3 cellen naar rechts en naar beneden gaat. Wellicht dat we dat kunnen gebruiken als je aangeeft, wat je wilt dat de macro gaat doen.

Met vriendelijke groet,


Roncancio
 
Wat wil je met de macro doen.
De macro selecteert uitsluitend cellen en maak daar een groep van.

Ik zie dat je steeds 3 cellen naar rechts en naar beneden gaat. Wellicht dat we dat kunnen gebruiken als je aangeeft, wat je wilt dat de macro gaat doen.

Met vriendelijke groet,

Roncancio

Idd, als er een patroon inzit, dan is dit klusje op 1-2-3 geklaard. Laat maar weten.
 
Ik wil met een command button in één keer een hele sheet leegmaken. Alle cellen die in het bereik genoemd worden moeten leeg met een klik. Dit zijn allen invoercellen die weer een reeks formules laten rekenen in de rest van de tabel. Als deze cellen leeg worden gemaakt, wordt de hele tabel dus opgeschoond. Er zit tot op zekere hoogte inderdaad een patroon in: steeds drie cellen naar rechts en 3 rijen naar onderen. Dit is echter niet consequent, zoals je in het bereik kunt zien. Op twee plekken verspingt het bereik meer dan 3 rijen (van rij 32 naar 68 en van rij 95 naar 105)

Wellicht helpt dit.

Fred
 
Laatst bewerkt:
Ik heb een voorbeeldje bijgevoegd. Dit is niet de hele file, maar geeft alleen de situatie weer. In de witte vakjes worden codes ingevuld, die vervolgens allerlei formules aansturen. Het is nu de bedoeling dat de command button met de macro in één keer alle witte vakjes leegt, en dus daarmee de rest van de tabel.
 

Bijlagen

Probeer eens een loopje:
Code:
Sub test()
Dim MyRange As Range

Set MyRange = Range("C1:K38")

For Each c In MyRange
    If c.Interior.ColorIndex = xlNone Then c = ""
Next

End Sub

Misschien niet de beste oplossing maar werkt wel :).


Groet,
Ferenc
 
Ik denk dat dit beter is:

Code:
Sub wissenvancellen()
Dim h As Integer, i As Integer, j As Integer, r As Range
Set r = Range("C5")
For h = 0 To 2
    For i = 0 To 2
        For j = 0 To 2
            r.Offset(12 * h + 3 * i, 3 * j).ClearContents
        Next
    Next
Next
End Sub

Al ben ik niet echt super tevreden van de loops, maar soit.

Wigi
 
Nog even zeggen:

delete wel een rij tussen tabel 2 en tabel 3. Dan werkt het.
 
Helaas kan ik geen rij deleten tussen tabel 2 en 3, daar staat van alles meer. Maar ga ze wel eens proberen.

Ik ben nog steeds wel benieuwd naar mijn eerste oplossing. Is die werkend te krijgen door de Range in stukken te knippen? Hoe zou het er dan uitzien?

Dank voor de hulp!
 
Laatst bewerkt:
Doe het zo:

Code:
Sub wismacro()
    wissenvancellen Range("C5")
    wissenvancellen Range("C17")
    wissenvancellen Range("C30")
End Sub

Sub wissenvancellen(r As Range)
Dim i As Integer, j As Integer
For i = 0 To 2
    For j = 0 To 2
        r.Offset(3 * i, 3 * j).ClearContents
    Next
Next
End Sub

Hoe werkt het?

Je voert de macro "wismacro" uit. Die roept op zijn beurt 3 keer een andere macro aan (wel telkens dezelfde). 1 tabel is 1 macro hier. Wat er verandert is de cel links boven. Die wordt meegegeven als een argument in de macro.

Snap je?

Wigi

PS: kijk niet te veel meer naar jouw oorspronkelijke macro. Deze suggestie is véél beter, geloof me.
 
Laatst bewerkt:
Ok, ik ga m proberen. Ik snap idd wat je wilt doen, dus dat moet lukken!
Bedankt zover.
 
OK

Let ook op mijn pas doorgevoerde wijziging in de vorige code:

"12 * h + " was niet meer nodig bij r.Offset(...)

Stond er nog van de code daarvoor maar is overbodig geworden.

Wigi
 
Ik heb m ingevoerd, maar hij werkt slechts gedeeltelijk. Een aantal cellen worden inderdaad gewist, maar een heleboel niet. Opvallend is dat de eerste cellen, zoals C5, ook gevuld blijven.

Ik denk dat hij niet werkt omdat je niet alle informatie hebt. Ik was wat huiverig om het hele bestand te sturen, omdat het een planningstool betreft die ik voor een relatie van mij aan het maken ben. Ik heb nu het bestand zoveel mogelijk leeg gemaakt, maar de structuur wel in stand gehouden. Zie bijlage. Het enige wat ik er nog bij moet vertellen is dat in het originele bestand de kolommen AN:AU ook gevuld zijn met formules, die dus niet gewist mogen worden. Het bereik voor het deleten moet zich dus beperken tot de gekleurde tabellen. Verder is alles identiek. De command button zelf werkt nog niet, ik heb de macro er nog niet op aangesloten.

Dit lijkt me beter werkbaar voor de heren (en dames) oplossers.... :thumb:
 

Bijlagen

Voilà

Code:
Sub SheetLeegmaken()
    wissenvancellen Range("C5"), 9, 11
    wissenvancellen Range("C69"), 9, 11
    wissenvancellen Range("C106"), 9, 10
End Sub

Sub wissenvancellen(r As Range, dimrij As Integer, dimkolom As Integer)
Dim i As Integer, j As Integer
For i = 0 To dimrij
    For j = 0 To dimkolom
        r.Offset(3 * i, 3 * j).ClearContents
    Next
Next
End Sub

In plaats van 1 argument in de macro zijn er nu 3 argumenten: voor rijen en kolommen is er telkens 1 bijgekomen.

Wigi
 
Laatst bewerkt:
Helemaal geweldig, hij draait als een zonnetje.

Mijn dank is groot!
:thumb:
 
@Wigi,

Das een hele lekkere. ;)
Weer een voor onder de boom.

Bedankt.

Groet,
Ferenc
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan