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

Invoerscherm werk niet

Status
Niet open voor verdere reacties.

franssack

Gebruiker
Lid geworden
1 jun 2021
Berichten
58
Goedemorgen,

Ik heb een bestand waar ik een registratie bij hou. In blad (invulblad) wil ik in kolom c gegevens invullen die automatisch in blad (Gegevens cliënten) komen.
1 en ander aan VBA heb ik overgenomen vanuit een ander bestand wat hier was behandeld.
Maar als ik nu gegevens invul komen deze niet op blad(Gegevens cliënten), ik heb het idee dat de opmaak van dit blad conflict geeft met de VBA, maar ik snap even niet waar dit zit.
Zodra ik in blad (Gegevens cliënten) de opmaak van de randen aanpas, dan komen de gegeven niet meer over vanuit het invulblad.

Kunnen jullie mij aangegeven wat ik verkeerd doe?

Ik had hier en daar ook al gekeken naar het maken van een invoerblad, maar dit gaat mijn pet echt te boven, mij kennis tot dit soort zaken rijkt niet zo ver.

Groet Frans
 
Wat verander je exact en wat gaat er dan precies fout?
 
Zodra ik in blad (Gegevens cliënten) de opmaak verander, ik pas bijvoorbeeld de lijndikte aan van alle cellen in dit blad, dan worden de gegevens niet meer overgenomen.
 
Verander de opslaan routine eens in:

Code:
Private Sub Opslaan_Click()
    Dim nwRegel As Integer
    If ActiveSheet.Range("C6") <> "" Then
        With Sheets("Gegevens cliënten")
            nwRegel = .Range("C" & .Rows.Count).End(xlUp).Offset(1).Row
            .Range("D" & nwRegel).Value = ActiveSheet.Range("C15")
            .Range("E" & nwRegel).Value = ActiveSheet.Range("C16")
            .Range("C" & nwRegel).Value = ActiveSheet.Range("C6")
            .Range("F" & nwRegel).Value = ActiveSheet.Range("C17")
            .Range("G" & nwRegel).Value = ActiveSheet.Range("C18")
            .Range("H" & nwRegel).Value = ActiveSheet.Range("C19")
            .Range("I" & nwRegel).Value = ActiveSheet.Range("C20")
            .Range("J" & nwRegel).Value = ActiveSheet.Range("C21")
            .Range("K" & nwRegel).Value = ActiveSheet.Range("C22")
            .Range("L" & nwRegel).Value = ActiveSheet.Range("C23")
            .Range("M" & nwRegel).Value = ActiveSheet.Range("C24")
            .Range("N" & nwRegel).Value = ActiveSheet.Range("C25")
            .Range("O" & nwRegel).Value = ActiveSheet.Range("C26")
            .Range("P" & nwRegel).Value = ActiveSheet.Range("C27")
            .Range("R" & nwRegel).Value = ActiveSheet.Range("C28")
            .Range("S" & nwRegel).Value = ActiveSheet.Range("C29")
            .Range("T" & nwRegel).Value = ActiveSheet.Range("C30")
            .Range("U" & nwRegel).Value = ActiveSheet.Range("C31")
            .Range("V" & nwRegel).Value = ActiveSheet.Range("C32")
            .Range("X" & nwRegel).Value = ActiveSheet.Range("C33")
            .Range("Y" & nwRegel).Value = ActiveSheet.Range("C34")
            .Range("Z" & nwRegel).Value = ActiveSheet.Range("C35")
            .Range("AB" & nwRegel).Value = ActiveSheet.Range("C36")
            .Range("AD" & nwRegel).Value = ActiveSheet.Range("C37")
            .Range("AF" & nwRegel).Value = ActiveSheet.Range("C38")
            .Range("AH" & nwRegel).Value = ActiveSheet.Range("C39")
            .Range("AJ" & nwRegel).Value = ActiveSheet.Range("C40")
            .Range("AL" & nwRegel).Value = ActiveSheet.Range("C41")
            .Range("AN" & nwRegel).Value = ActiveSheet.Range("C42")
            .Range("AO" & nwRegel).Value = ActiveSheet.Range("C43")
            .Range("AQ" & nwRegel).Value = ActiveSheet.Range("C44")
            .Range("AS" & nwRegel).Value = ActiveSheet.Range("C45")
            .Range("AU" & nwRegel).Value = ActiveSheet.Range("C46")
            .Range("AW" & nwRegel).Value = ActiveSheet.Range("C47")
            .Range("AY" & nwRegel).Value = ActiveSheet.Range("C48")
            .Range("AZ" & nwRegel).Value = ActiveSheet.Range("C49")
            .Range("BA" & nwRegel).Value = ActiveSheet.Range("C50")
            .Range("BB" & nwRegel).Value = ActiveSheet.Range("C51")
            .Range("BC" & nwRegel).Value = ActiveSheet.Range("C52")
            .Range("BD" & nwRegel).Value = ActiveSheet.Range("C53")
        End With
        Cells(6, "C").Formula = "=MAX($G$4:$G$18356)+1"
        Range("C15:C53").ClearContents
    End If
End Sub
 
aaaaa. geweldig!

Ik loop nu alleen tegen het issue aan dat het bestand trager wordt, niet heel erg, maar kan misschien op den duur wel irritatie geven.
Ligt dat aan de hoeveelheid data die wordt weggeschreven? of aan de VBA zelf?
 
Hallo Frans,

Ik heb je een persoonlijk bericht gestuurd.!!
 
Plaats aan het begin van diezelfde code:
Code:
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False

En aan het einde:
Code:
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
 
Goedemorgen, Ik ben weer even terug.
Vraagje , hoe krijg ik de gegevens op verschillende tabbladen?
Ik heb nu code - With Sheets("Gegevens cliënten") -, maar deze zou ik ook graag op een tweede tabblad bv gegevens2 willen hebben.
 
Voorbeeld bestand? (denk wel aan het verwijderen van privacy gevoelige gegevens) zie #7
 
Laatst bewerkt:
Dit dus.

Alles komt in blad Personeel, maar wat ik probeer is om een deel van deze gegevens in blad frans te krijgen.
 

Bijlagen

  • Registratie aanwijzingen certificering GV-KV-MSR 2021 test1.xlsb
    821 KB · Weergaven: 24
Als het snel moet:

Code:
Private Sub Opslaan_Click()
    Application.Calculation = xlCalculationManual
    If Range("C6") <> "" Then
        sn = Range("C6:C53")
        Sheets("Personeel").Cells(.Rows.Count, 3).End(xlUp).Offset(1).Resize(,7) = Array(sn(1, 1), sn(9, 1), sn(10, 1), sn(11, 1), sn(12, 1), sn(13, 1), sn(14, 1))
        Range("C6") = "=MAX($G$4:$G$18356)+1"
        Range("C15:C53").ClearContents
    End If
End Sub
 
Laatst bewerkt:
Werkt niet, zodra ik deze plak, geeft hij de foutmelding ongeldige of niet ge-kwalificeerde verwijzing.
 
Code:
Private Sub Opslaan_Click()
    Application.Calculation = xlCalculationManual
    If Range("C6") <> "" Then
        sn = Range("C6:C53")
    With Sheets("Personeel")
         .Cells(.Rows.Count, 3).End(xlUp).Offset(1),resize(,7) = Array(sn(1, 1), sn(9, 1), sn(10, 1), sn(11, 1), sn(12, 1), sn(13, 1), sn(14, 1))
    End with
        Range("C6") = "=MAX($G$4:$G$18356)+1"
        Range("C15:C53").ClearContents
    End If

End Sub
 
excuus stond inderdaad een foutje in de code.
voor resize(,7) de , vervangen door een .
Code:
Private Sub Opslaan_Click()
    Application.Calculation = xlCalculationManual
    If Range("C6") <> "" Then
        sn = Range("C6:C53")
    With Sheets("Personeel")
         .Cells(.Rows.Count, 3).End(xlUp).Offset(1).resize(,7) = Array(sn(1, 1), sn(9, 1), sn(10, 1), sn(11, 1), sn(12, 1), sn(13, 1), sn(14, 1))
    End with
        Range("C6") = "=MAX($G$4:$G$18356)+1"
        Range("C15:C53").ClearContents
    End If

End Sub

Let op dit is voorbeeld voor het blad Personeel.
De array moet je nog aanvullen en Resize(,7) aanpassen. aan het aantal.

probeer eens voor het blad frans.
Code:
If Range("C6") <> "" Then
        sn = Range("C6:C53")
    With Sheets("frans")
         .Cells(.Rows.Count, 1).End(xlUp).Offset(1).resize(,7) = Array(sn(1, 1), sn(9, 1), sn(10, 1), sn(11, 1), sn(12, 1), sn(13, 1), sn(14, 1))
    End with
        Range("C6") = "=MAX($G$4:$G$18356)+1"
        Range("C15:C53").ClearContents
 End If
Misschien krijg je dan een idee hoe de code werkt
Volgorde van de array moet je zelf maar goed zetten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan