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

Autofill

Status
Niet open voor verdere reacties.

Jack Nouws

Terugkerende gebruiker
Lid geworden
16 apr 2008
Berichten
1.396
Hallo

Ik ben met een stukje code bezig maar ik krijg het niet werkend. :confused:
Het gaat om het stukje autofill Wie kan me hierbij helpen?

Met vr gr
Jack
Code:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
    If TxtNr = "" Then
        With Sheets("dataplant")
            .Unprotect
            .Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 9) = Split(Format(TxtDatum.Text, "mm/dd/yyyy") & "|" & TxtNr.Text & "|||" & TxtVN.Text & "|" & TxtTV.Text & "|" & TxtAN.Text & "|" & TxtMaat.Text & "|" & TxtPot.Text, "|")
                With .Cells(Rows.Count, 2).End(xlUp).Resize(, 3)
                     .AutoFill Destination:=.Resize(2)
                End With
            .Protect
        End With

Else
    If TxtNr <> "" Then
        With Sheets("dataplant").[C2:C200]
        Set c = .Find(CboCode.Value, LookIn:=xlValues, LookAt:=xlWhole)
            Cells(c.Row, "A").Resize(, 9) = Split(Format(TxtDatum.Text, "mm/dd/yyyy") & "|" & TxtNr.Text & "|||" & TxtVN.Text & "|" & TxtTV.Text & "|" & TxtAN.Text & "|" & TxtMaat.Text & "|" & TxtPot.Text, "|")

            [COLOR="blue"]With .Cells(c.Row, "B").Resize(, 3)
                 .AutoFill Destination:=.Resize(2)
            End With[/COLOR]   
                End With
'            .Protect
'        End With
    End If
End If

Application.ScreenUpdating = True

End Sub
 
Haal eerst de onzin uit de code
Code:
If TxtNr = "" Then
      -----------
    Else
       If TxtNr <> "" Then
          ------------ 
       End If
End If
Bestudeer eerst in de hulpfunktie van de VBEditor: If...Else...End If.
Of doe dat in een goed boek over Excel VBA.
Verbeter de code.
Daarna praten we verder.
 
Haal eerst de onzin uit de code
Code:
If TxtNr = "" Then
      -----------
    Else
       If TxtNr <> "" Then
          ------------ 
       End If
End If
Bestudeer eerst in de hulpfunktie van de VBEditor: If...Else...End If.
Of doe dat in een goed boek over Excel VBA.
Verbeter de code.
Daarna praten we verder.
Hallo

Ik zou het echt niet weten hoe ik dit zonder If moest oplossen. :(

Met vr gr
Jack
 
Uit je antwoorden blijkt niet dat je mijn suggesties

Bestudeer eerst in de hulpfunktie van de VBEditor: If...Else...End If.
Of doe dat in een goed boek over Excel VBA.

hebt opgevolgd.
 
Wanneer een instructie If in blokvorm wordt uitgevoerd (tweede syntaxis), wordt voorwaarde geëvalueerd. Als voorwaarde True is, worden de instructies die volgen op Then uitgevoerd. Als voorwaarde False is, wordt elke voorwaarde ElseIf (indien aanwezig) beurtelings geëvalueerd. Zodra een voorwaarde wordt gevonden die True is, worden de instructies uitgevoerd die onmiddellijk volgen op de bijbehorende Then. Als geen van de voorwaarden ElseIf True zijn (of als er geen ElseIf-zinnen zijn), worden de instructies uitgevoerd die volgen op Else. Nadat de instructies die volgen op Then of Else zijn uitgevoerd, gaat de uitvoering verder met de instructie die volgt op End If.

Ik geloof dat dit stukje, in de Help van Excel, is wat jullie bedoelen.:thumb:

Met vr gr
Jack
 
De Else tak in de If...Then...Else slaat op het tegenovergestelde van de voorwaarde in de If. M.a.w. als je dit dan nog een keer neerzet, heb je het niet begrepen.
 
De Else tak in de If...Then...Else slaat op het tegenovergestelde van de voorwaarde in de If. M.a.w. als je dit dan nog een keer neerzet, heb je het niet begrepen.

Hallo

Sorry hoor ik kan jullie totaal niet volgen, (het zal de leeftijd wel zijn die mee speelt).

Met vr gr
Jack
 
Wat heeft dit met leeftijd te maken? Je moet weten waar je mee bezig bent, net zoals dat iemand anders die x aantal jaar jonger is, dat ook moet doen. x zelf in te vullen.

Wat doet de regel:

Code:
If TxtNr <> "" Then

en dit in het Else gedeelte van de buitenste If?
 
Wat heeft dit met leeftijd te maken? Je moet weten waar je mee bezig bent, net zoals dat iemand anders die x aantal jaar jonger is, dat ook moet doen. x zelf in te vullen.

Wat doet de regel:

Code:
If TxtNr <> "" Then

en dit in het Else gedeelte van de buitenste If?

Hallo

Als er "iets" in TxtNr staat Then
Als TxtNr "is leeg" is Then

Met vr gr
Jack
 
Als je dit:

Code:
If TxtNr = "" Then
      -----------
    Else
       If TxtNr <> "" Then
          ------------ 
       End If
End If

vertaalt, krijg je:

Code:
Als TxtNr leeg is, dan doe ik bepaalde dingen.
Als TxtNr niet leeg is, als TxtNr niet leeg is, dan doe ik een aantal andere dingen.

Duidelijker kan ik het echt niet zeggen.

Wigi
 
Als je dit:

Code:
If TxtNr = "" Then
      -----------
    Else
       If TxtNr <> "" Then
          ------------ 
       End If
End If

vertaalt, krijg je:

Code:
Als TxtNr leeg is, dan doe ik bepaalde dingen.
Als TxtNr niet leeg is, als TxtNr niet leeg is, dan doe ik een aantal andere dingen.

Duidelijker kan ik het echt niet zeggen.

Wigi
Hallo

Geldt dit ook voor de ElseIf Functie?

Met vr gr
Jack
 
De euro is gevallen...

Hallo

Bedankt tot zover.:thumb:
Maar nu terug naar mijn vraag, waarom wil deze niet?
Code:
With .Cells(c.Row, "B").Resize(, 3)
                 .AutoFill Destination:=.Resize(2)
            End With
Met vr gr

Jack
 
En dan heb ik de voorbeelden nog maar niet gekopieerd uit de hulpfunktie van de VBEditor..

If...Then...Else, instructie


Voert een groep instructies voorwaardelijk uit, afhankelijk van de waarde van een expressie.

Syntaxis

If voorwaarde Then [instructies] [Else andersinstructies]

U kunt ook de volgende syntaxis in blokvorm gebruiken:

If voorwaarde Then
[instructies]

[ElseIf voorwaarde-n Then
[andersindieninstructies] ...

[Else
[andersinstructies]]

End If

De instructie If...Then...Else heeft de volgende argumenten:

Onderdeel Beschrijving
voorwaarde Vereist. Een of meer van de volgende twee soorten expressie:
Een numerieke expressie of reeksexpressie die de waarde True of False heeft. Als voorwaarde Null is, wordt voorwaarde behandeld als zijnde False.
Een expressie van de vorm TypeOf objectnaam Is objecttype. De objectnaam is een willekeurige verwijzing naar een object en objecttype is een willekeurig geldig objecttype. De expressie is True als objectnaam van het objecttype is dat door objecttype is opgegeven, anders is de expressie False.
instructies Optioneel in blokvorm; vereist in eenregelige syntaxis als er geen Else voorkomt. Een of meer instructies die worden gescheiden door dubbele punten. Deze instructies worden uitgevoerd als voorwaarde True is.
Voorwaarde-n Optioneel. Hiervoor geldt hetzelfde als voor voorwaarde.
Andersindieninstructies Optioneel. Een of meer instructies die worden uitgevoerd als de bijbehorende voorwaarde-n True is.
andersinstructies Optioneel. Een of meer instructies die worden uitgevoerd als geen van de voorgaande voorwaarde- of voorwaarde-n-expressies True is.



Notities

U kunt de eenregelige syntaxis (de eerste genoemde syntaxis) gebruiken voor korte, simpele tests. De blokvorm (tweede genoemde syntaxis) geeft echter meer structuur en flexibiliteit dan de eenregelige vorm en het is meestal gemakkelijker deze te lezen, te onderhouden en fouten op te sporen.

Opmerking Met de eenregelige vorm is het mogelijk meerdere instructies te laten uitvoeren als resultaat van een If...Then-beslissing. Alle instructies moeten op dezelfde regel voorkomen en worden gescheiden door dubbele punten, zoals in de volgende instructie:

If A > 10 Then A = A + 1 : B = B + A : C = C + B

Een instructie If in blokvorm moet de eerste instructie op een regel zijn. De onderdelen Else, ElseIf en End If kunnen alleen worden voorafgegaan door een regelnummer of een regelnaam. Het blok If moet worden afgesloten door een instructie End If.

Als u wilt bepalen of een instructie al dan niet een blok If is, kunt u controleren wat er volgt op het sleutelwoord Then. De instructie wordt behandeld als een eenregelige instructie If als er iets anders dan een opmerking voorkomt op dezelfde regel na Then.

Else en ElseIf zijn beide optioneel. U kunt een onbeperkt aantal ElseIf-zinnen in een blok If opnemen, maar deze kunnen niet na een Else-zin voorkomen. Instructies If in blokvorm kunnen worden genest. Dit betekent dat een instructie If zich binnen een andere instructie If bevindt.

Wanneer een instructie If in blokvorm wordt uitgevoerd (tweede syntaxis), wordt voorwaarde geëvalueerd. Als voorwaarde True is, worden de instructies die volgen op Then uitgevoerd. Als voorwaarde False is, wordt elke voorwaarde ElseIf (indien aanwezig) beurtelings geëvalueerd. Zodra een voorwaarde wordt gevonden die True is, worden de instructies uitgevoerd die onmiddellijk volgen op de bijbehorende Then. Als geen van de voorwaarden ElseIf True zijn (of als er geen ElseIf-zinnen zijn), worden de instructies uitgevoerd die volgen op Else. Nadat de instructies die volgen op Then of Else zijn uitgevoerd, gaat de uitvoering verder met de instructie die volgt op End If.

Tip Select Case Wanneer een enkele expressie moet worden geëvalueerd die verschillende mogelijke acties bevat, kunt u beter Select Case gebruiken. TypeOf objectnaam Is objecttype kan echter niet worden gebruikt met de instructie Select Case.

Opmerking TypeOf kan niet met andere harde gegevenstypen, zoals Long, Integer, enzovoort, worden gebruikt dan met Object.

Ik hoop niet dat je leeftijd vaker als 'excuus' opvoert. Er is geen verband tussen leeftijd enerzijds en nieuwsgierigheid, nauwgezetheid, logisch denken, zorgvuldig lezen en studeren anderzijds. Dat kan gelukkig op iedere leeftijd even intensief. Dat geldt (mirabile dictu) zelfs voor het beantwoorden van forumvragen.
 
En dan heb ik de voorbeelden nog maar niet gekopieerd uit de hulpfunktie van de VBEditor..



Ik hoop niet dat je leeftijd vaker als 'excuus' opvoert. Er is geen verband tussen leeftijd enerzijds en nieuwsgierigheid, nauwgezetheid, logisch denken, zorgvuldig lezen en studeren anderzijds. Dat kan gelukkig op iedere leeftijd even intensief. Dat geldt (mirabile dictu) zelfs voor het beantwoorden van forumvragen.

Hallo snb

Dank U wel voor de duidelijke instructies.:thumb: :thumb:
Ik zal voortaan mijn best doen! Maar vragen zijn vragen.
En dan nu terug naar mijn vraag.:p

Met vr gr
Jack
 
Laatst bewerkt:
Jack,

Waarom staat die code op die plek?

RedEvil
Hallo

Ik was die code aan het uitproberen (uit een vorige topic van mij gehaald).

Het is de bedoeling dat in kolom B naar de waarde van de combobox gezocht wordt.
Dan 1 rij naar boven, kolom B,C en D kopieeren, 1 rij naar beneden en plakken.
Maar ik krijg helaas de code niet werkend (Zie code).
Code:
Sheets("dataplant").Cells(c.Row, "B").Resize(, 3).AutoFill Destination:=.Resize(2)
Ik hoop dat je me hier mee wilt helpen?

Met vr gr
Jack
Code:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
    If TxtNr = "" Then
        With Sheets("dataplant")
            .Unprotect
            .Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 9) = Split(Format(TxtDatum.Text, "mm/dd/yyyy") & "|" & TxtNr.Text & "|||" & TxtVN.Text & "|" & TxtTV.Text & "|" & TxtAN.Text & "|" & TxtMaat.Text & "|" & TxtPot.Text, "|")
                With .Cells(Rows.Count, 2).End(xlUp).Resize(, 3)
                     .AutoFill Destination:=.Resize(2)
                End With
            .Protect
        End With

    Else:     Sheets("dataplant").[C2:C10].Find(CboCode.Value).Offset(, -2).Resize(, 9) = Split(Format(TxtDatum.Text, "mm/dd/yyyy") & "|" & TxtNr.Text & "|||" & TxtVN.Text & "|" & TxtTV.Text & "|" & TxtAN.Text & "|" & TxtMaat.Text & "|" & TxtPot.Text, "|")

     Sheets("dataplant").Cells(c.Row, "B").Resize(, 3).AutoFill Destination:=.Resize(2)
   
    End If


Application.ScreenUpdating = True

End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan