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

Vereenvoudigen VBA-code n.a.v. compilatie te groot

Status
Niet open voor verdere reacties.

Meppedan

Gebruiker
Lid geworden
8 okt 2012
Berichten
7
Hallo,

Ik vroeg mij af of iemand een oplossing heeft voor onderstaand voorbeeld VBA-stukje.
Aangezien ik de melding krijg "compilatie te groot" zoek ik een oplossing voor het vereenvoudigen
van het onderstaande stukje code. De bedoeling is dat ik een cel, waarin waarvan de waarde handmatig wordt
ingevuld wordt vegeleken met een andere cel, waar al een waarde in staat en is deze waarde groter, dan
de target.value, dan blijft deze waarde bestaan. Alvast bedankt voor de hulp.

If Target.value = Cells(61, 7) Then If Target.value > Cells(62, 6).value Then Cells(62, 6).value = Target.value
If Target.value = Cells(61, 7) Then If Target.value > Cells(63, 6).value Then Cells(63, 6).value = Target.value
If Target.value = Cells(61, 7) Then If Target.value > Cells(64, 6).value Then Cells(64, 6).value = Target.value
If Target.value = Cells(61, 7) Then If Target.value > Cells(65, 6).value Then Cells(65, 6).value = Target.value
If Target.value = Cells(61, 7) Then If Target.value > Cells(66, 6).value Then Cells(66, 6).value = Target.value
If Target.value = Cells(61, 7) Then If Target.value > Cells(67, 6).value Then Cells(67, 6).value = Target.value
If Target.value = Cells(61, 7) Then If Target.value > Cells(68, 6).value Then Cells(68, 6).value = Target.value
If Target.value = Cells(61, 7) Then If Target.value > Cells(69, 6).value Then Cells(69, 6).value = Target.value
If Target.value = Cells(61, 7) Then If Target.value > Cells(70, 6).value Then Cells(70, 6).value = Target.value
If Target.value = Cells(61, 7) Then If Target.value > Cells(71, 6).value Then Cells(71, 6).value = Target.value
If Target.value = Cells(61, 7) Then If Target.value > Cells(72, 6).value Then Cells(72, 6).value = Target.value
If Target.value = Cells(61, 7) Then If Target.value > Cells(73, 6).value Then Cells(73, 6).value = Target.value
If Target.value = Cells(61, 7) Then If Target.value > Cells(74, 6).value Then Cells(74, 6).value = Target.value
If Target.value = Cells(61, 7) Then If Target.value > Cells(75, 6).value Then Cells(75, 6).value = Target.value

Met vriendelijke groet,
Meppedan
 
Dat kan wel een stukje korter maar ik kan me niet voorstellen dat je daar een melding m.b.t. de grootte over krijgt.
Dit doet hetzelfde (Even uit het hoofd):

Code:
If Target.value = Cells(61, 7) Then
    For i = 62 to 75
        If Target.value > Cells(i, 6).value Then Cells(i, 6).value = Target.value
    Next i
End If
 
Laatst bewerkt:
Dit doet hetzelfde als je eigen macro maar is dat wel de oplossing,
je geeft niet de complete macro en geen voorbeeld bestand, misschien kan het veel simpeler.

Code:
Sub test()
    For i = 62 To 75
        If target.Value = Cells(61, 7) Then
            If target.Value > Cells(i, 6) Then Cells(i, 6) = target.Value
        End If
    Next
End Sub


PS gebruik de codetags # om macros te plaatsen.

edit: net te laat , maar bijna hetzelfde ;-)
@ Edmoor, ik snap waarom je hem andersom zet, ik controleer 13 keer de cel op dezelfde waarde :o


Niels
 
Laatst bewerkt:
Niels denkt er dus ook zo over ;)
 
Laatst bewerkt:
@Edmoor, zie ook niet in waarom macro tekst te lang zou kunnen zijn, ik heb grotere lappen gezien.
heb ook het verschil door tussen jouw macro en de mijne, soms zie je niet dat je overbodig controleert.

Niels
 
Ik zag het maar wilde er niet over zeuren.
Tevens zal het om een event script gaan en niet om een standaard Sub.
Dit vanwege de Target.Value.
 
Beste edmoor en Niels28,

Hartelijk dank voor de snelle reactie.
Works like a charm.

Wat betreft de "compilatie te groot" error.
Het waren inderdaad lappen tekst (in totaal 206 regels uitgetypt),
dus jullie oplossing scheelt heel wat regels.

Met vriendelijke groet,
Meppedan
 
Graag gedaan, al blijf ik het vreemd vinden omdat ik zelf werk met VBA routines die rustig een dikke 1000 regels zijn.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan