Formule kopieren

Status
Niet open voor verdere reacties.

gpiket7

Gebruiker
Lid geworden
25 jul 2008
Berichten
169
Ik plak met een VBA code 2 verschillende formules in 2 verschillende cellen

Code:
Cells(7, 21) = Replace("=N7/Gebruikers!$F$2*IF(E7=#Alle Vestigingen#,Gebruikers!$F$2,VLOOKUP(E7,Gebruikers!$A$2:$B$60,2,0))", "#", Chr(34))
Cells(7, 22) = Replace("=N7/Gebruikers!$G$9*IF(E7=#Alle Vestigingen#,Gebruikers!$F$2,VLOOKUP(E7,Gebruikers!$A$2:$B$60,2,0))", "#", Chr(34))

Deze laat ik daarna via VBA naar onderen kopieren
Code:
    Range("U7:V7").Select
    Selection.AutoFill Destination:=Range("U7:V70"), Type:=xlFillDefault
    Range("U7:V70").Select

Nu wil ik echter in een bepaalde cel een aantal bepaalde waardes optellen. dit doe ik met de formule
Code:
=SOMPRODUCT(($G$29:$G$49=E107)*($U$29:$U$49))

Echter omdat niet alle cellen zijn ingevoerd met waardes komt er als uitkomst te staan: #N/B
Kan je ook instellen dan de formule alleen gekopieerd wordt naar rijen waar in kolom E iets staat ingevoerd?
 
Laatst bewerkt:
Wat staat er dan zoal in kolom 3? Formules / vaste waarden? Tekst of getallen?
 
Ik weet niet welke kolom je bedoelt, maar in kolom U en V staan formules.
Deze worden gekopieerd.
 
Dit zet ik dan in het stukje van het kopieren?

Code:
Range("U7:V7").Select
    Selection.AutoFill Destination:=Range("U7:V70"), Type:=xlFillDefault
    Range("U7:V70").Select

Of waar zo? En wat houdt dan dat 2, 2 in?
 
Ik ben nog niet zo lang bezig met VBA, dus heb nu eigenlijk niet echt een idee...

Ik heb al wel dit een keer gedaan en dan is het ook met een range:

Code:
Dim r As Range
    For Each r In Range("A1:A100")
        If r.Value = "" Then
            r.EntireRow.Hidden = True ' Verstoppen van de rij
        Else
            r.EntireRow.Hidden = False ' Zichtbaar maken van de rij
        End If
    Next
 
Code:
SpecialCells(2, 2)

staat voor:

Code:
SpecialCells(xlCellTypeConstants, xlTextValues)

Dit kan je terug vinden in de Helpfunctie.

De bedoeling van SpecialCells is net om een lus te vermijden...
 
Deze
Code:
SpecialCells(xlCellTypeConstants, xlTextValues)
staat bij mij niet in mijn lijstje...

Ik heb wel deze allemaal gevonden:

Code:
xlCellTypeAllFormatConditions. Cellen met alle typen opmaak 
xlCellTypeAllValidation. Cellen met validatiecriteria
xlCellTypeBlanks. Lege cellen
xlCellTypeComments. Cellen die notities bevatten 
xlCellTypeConstants. Cellen die constanten bevatten 
xlCellTypeFormulas. Cellen die formules bevatten
xlCellTypeLastCell. De laatste cel in het gebruikte bereik
xlCellTypeSameFormatConditions. Cellen met dezelfde opmaak
xlCellTypeSameValidation. Cellen met dezelfde validatiecriteria 
xlCellTypeVisible. Alle zichtbare cellen

Maar snap eigenlijk nog steeds niet hoe ik deze dan in een code zou moeten verwerken.

Het gaat erom dat in cel U7 en V7 een formule komt te staan en deze gekopieerd wordt naar naar onder als in kolom E niet leeg is is.

Dus ik dacht iets van
Code:
Dim r As Range
    For Each r In Range("A1:A100")
        If r.Value = "" Then
            r.EntireRow.Hidden = True ' Verstoppen van de rij
        Else
            r.EntireRow.Hidden = False ' Zichtbaar maken van de rij
        End If
    Next

En dan inplaatst van het verbegen moet een stuk code komen dat hij de formule kopieert
 
Hmmm.

Deze
Code:
SpecialCells([B][SIZE="4"]xlCellTypeConstants[/SIZE][/B], xlTextValues)
staat bij mij niet in mijn lijstje...

Ik heb wel deze allemaal gevonden:
xlCellTypeAllFormatConditions. Cellen met alle typen opmaak
xlCellTypeAllValidation. Cellen met validatiecriteria
xlCellTypeBlanks. Lege cellen
xlCellTypeComments. Cellen die notities bevatten
xlCellTypeConstants. Cellen die constanten bevatten
xlCellTypeFormulas. Cellen die formules bevatten
xlCellTypeLastCell. De laatste cel in het gebruikte bereik
xlCellTypeSameFormatConditions. Cellen met dezelfde opmaak
xlCellTypeSameValidation. Cellen met dezelfde validatiecriteria
xlCellTypeVisible. Alle zichtbare cellen

en xlTextValues zie je op dezelfde pagina staan als je iets naar beneden kijkt.

Pas dus die SpecialCells toe op kolom E, en ga met Offset x aantal kolommen opzij. Daar zet je dan met .Formula de formula uit U7 en V7.
 
Laatst bewerkt:
Code:
Sub wigi()
    With Columns(5).SpecialCells(2, 2)
        .Offset(, 16).Formula = Replace("=$N7/Gebruikers!$F$2*IF($E7=#Alle Vestigingen#,Gebruikers!$F$2,VLOOKUP($E7,Gebruikers!$A$2:$B$60,2,0))", "#", Chr(34))
        .Offset(, 17).Formula = Replace("=$N7/Gebruikers!$G$9*IF($E7=#Alle Vestigingen#,Gebruikers!$F$2,VLOOKUP($E7,Gebruikers!$A$2:$B$60,2,0))", "#", Chr(34))
    End With
End Sub

Wigi
 
Wigi,

Bedankt voor de code die werkt inderdaad.
Alleen zet hij de formules een rij te hoog en ik kan in de code niet vinden hoe ik hem een regel lager kan laten plaatsen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan