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

Formule doorvoeren via VBA werkt niet

Status
Niet open voor verdere reacties.

samabert

Gebruiker
Lid geworden
27 mrt 2010
Berichten
301
Goedemorgen,

Tabblad “Gebruikt-materiaal” wordt enkel gebruikt als basis.
Wanneer je in B6 een naam plaatst + enter wordt er een nieuw tabblad aangemaakt van waaruit gewerkt kan worden.


Eerste vraag:
In het tabblad met het projectnummer (vb. 202016) staan er in Range H12:H37 formules.
Via de knop “Nieuw blad aanmaken” wordt een nieuw invulblad aangemaakt.
Bij elk volgende nieuw invulblad staan er geen formules meer in de Range van kolom H.
In dit voorbeeld zijn 3 invulbladen aangemaakt.
Kan dit aangepast worden in de modules Dupliceren?


Tweede vraag:
In hetzelfde tabblad (202016) krijg je bij elk nieuw invulblad een Subtotaal te zien, hier wordt de formule netjes doorgevoerd.
Echter het eindtotaal in cel H129 (volgens het voorbeeld met 3 invulbladen) wordt niet weergegeven.
Kan dit ook aangepast worden?

De code heb ik vroeger via het forum verkregen, maar nu pas gaan we het werkblad gebruiken.

Alvast bedankt.

Marc
 

Bijlagen

  • Test_1.xlsm
    63,1 KB · Weergaven: 52
t.a.v. vraag 1: maak van
Code:
        Range("B" & 45 * i + 12).Resize(26, 8).ClearContents
eens
Code:
        Range("B" & 45 * i + 12).Resize(26, 6).ClearContents

en als het een beetje meezit is dan vraag 2 ook opgelost
 
Laatst bewerkt:
Haije,

Bedankt voor jouw antwoord, echter dit geeft niet het resultaat.

Misschien is mijn uitleg niet helemaal duidelijk.
Zoals nu in het bijgevoegde voorbeeld (dit zijn nu voorlopig 3 invulbladen onder tabblad 202016) staan in de volgende Ranges geen formules meer.
Range H57:H82 en H102:H127. Telkens je een nieuw blad aanmaakt zouden daar dus ook de formules moeten in verschijnen zoals in Range H12:H37

Marc
 
Marc,

klopt,

de macro plaatst ze wel, maar verwijderd ze weer met deze code
Code:
        Range("B" & 45 * i + 12).Resize(26, 8).ClearContents
 
Haije,

Super :thumb: dit met de formules in telkens een nieuw invoerblad werkt. Ik had niet gezien dat jouw aangepaste regel 2 keer voorkwam in de code. Dit is nu aangepast.

Heb je soms ook nog een oplossing voor de 2° vraag?
In het nieuwe voorbeeld (Test_2 & tabblad 202018) in cel H129 zou het eindtotaal moeten komen, dit zijn de sommen van Range H39, H84 en H128. Dit moet ook automatisch aangepast worden indien er een blad bijkomt.

Alvast bedankt.
Marc
 

Bijlagen

  • Test_2.xlsm
    66,4 KB · Weergaven: 39
Echter het eindtotaal in cel H129 (volgens het voorbeeld met 3 invulbladen) wordt niet weergegeven.
Kan dit ook aangepast worden?

Code:
=SOM.ALS([COLOR="#FF0000"]G:G[/COLOR];"Sub totaal:";H:H)
i.p.v.
Code:
=SOM.ALS([COLOR="#FF0000"]F:F[/COLOR];"Sub totaal:";H:H)
 
Harry,

Jij ook bedankt voor de aanpassing, als ik deze wijzig in het tabblad (202016) werkt het.

Echter dit is in het invulblad (Laatste pagina) zelf, telkens je een nieuw tabblad (vb.: 202016) aanmaakt staat de formule natuurlijk terug op Range FF in plaats van GG.
Ik heb gezocht hoe je dit moet aanpassen, ik vermoed in volgende code, maar dit lukt mij helemaal niet.

Code:
 Sub Dupliceren()

    Dim x
    Dim Aantal As Integer, i As Integer

    x = InputBox("Aantal nieuwe bladen" & vbLf & "Stoppen = 0", "Dupliceer blad 1")

    If Not IsNumeric(x) Then
        MsgBox "Er wordt een nummerieke waarde verwacht."
        Exit Sub
    End If

    If x <= 0 Then Exit Sub

    For Aantal = 1 To x
        i = WorksheetFunction.CountIf(Range("A:A"), "Nummer")
        Range("A1:H45").Copy Range("A" & 45 * i + 1)
        Range("C" & 45 * i + 9).Value = "Pagina: " & i + 1
        Range("I" & (i - 1) * 45 + 39 & ":J" & (i - 1) * 45 + 39).ClearContents

        Range("B" & 45 * i + 12).Resize(26, 6).ClearContents
        nummer = ""
        For j = 1 To 26
            nummer = nummer & "|" & 26 * i + j
        Next
        Range("A" & 45 * i + 12).Resize(26, 1).Value = WorksheetFunction.Transpose(Split(Mid(nummer, 2), "|"))
        Range("B" & 45 * i + 12).Resize(26, 6).ClearContents

        ActiveWorkbook.Names.Add Name:="pagina" & i + 1, RefersTo:=Range("A" & (i) * 45 + 1 & ":j" & (i) * 45 + 44)
    Next
    Range("G" & 39 + 45 * (i)).Value = "EINDTOTAAL:"
    Range("H" & 39 + 45 * (i)).FormulaR1C1 = "=SUMIF(C[-2],""Sub totaal:"",C)"

End Sub

Alvast bedankt.
Marc
 
C7 i.p.v. C[-2]
 
C7 i.p.v. C[-2]

Sorry, maar ik krijg het niet voor elkaar om jouw voorgestelde aanpassing werkende te krijgen in de code. :confused:

Code:
 Range("H" & 39 + 45 * (i)).FormulaR1C1 = "=SUMIF(C[-2],""Sub totaal:"",C)"

Marc
 
Wat is er moeilijk aan om [-2] te vervangen door een 7.
 
Eigenlijk niets, maar ik zag het eerst niet...:eek:
Met die 7 werkte het nog niet, ik heb er nu [-1] van gemaakt en nu wordt het eindtotaal netjes weergegeven.

Bedankt voor de hulp.

Marc
 
Geen leugens schrijven.

Uiteraard werkt C7.
Die staat voor $G:$G.
De formule in het werkblad wordt netjes:
Code:
=SOM.ALS($G:$G;"Sub totaal:";H:H)

Ook werkt uiteraard C[-1]; 8-1=7.
 
Dat is zeker niet de bedoeling van leugens te schrijven, dan is het eerder onkunde van mijn kant.
Ik dacht het begrepen te hebben, maar blijkbaar dus niet.
Doch kijk a.u.b. eens naar de 2 bijgevoegde voorbeelden. Waarschijnlijk heb ik, wat ik beoogde verkeerd uitgelegd.
In test2 wordt het eindtotaal niet weergegeven en test3 wel, of loop ik nu helemaal verloren in het bos?

Ik volg je al vele jaren en apprecieer enorm wat je al jaren voor mij gedaan hebt!

M.v.g.
Marc
 

Bijlagen

  • Test_3.xlsm
    59,1 KB · Weergaven: 36
  • Test_2.xlsm
    59 KB · Weergaven: 36
Laatst bewerkt:
Tja, je begrijpt het nog niet helemaal.

Geen C[7], met die haken, want je start is in kolom H.
H = kolom 8
C[7] = C+7 = kolom 15 = kolom O. (I J K L M N O, zijn 7).

Het is C7 en niet meer of minder.
C staat voor kolom en 7 staat voor welk kolom.
C7 is dus kolom7 en staat voor G.
 
Enorm bedankt voor de duidelijke uitleg en voor je geduld!
Ik denk dat ik het nu begrepen heb. :eek: Het aangepaste voorbeeld met C7.

M.v.g.
Marc
 

Bijlagen

  • Test_4.xlsm
    57,6 KB · Weergaven: 41
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan