Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: VBA  (gelezen 3770 keer)

0 leden en 1 gast bekijken dit topic.

Offline vdbergha

  • Volledig lid
  • **
  • Berichten: 205
  • Geslacht: Man
  • Bedankt voor uw reactie
VBA
« Gepost op: 12 mei 2017, 11:56:26 »
Ik heb in Excel een database bestand met de naam "Evanco ledenbestand" met op het tabblad "Leden" de database.
Ik heb een invulformulier gemaakt voor de gegevens van de leden.
Bij het opslaan naar de database met de knop "Toevoegen" krijg ik de foutmelding :

Compileerfout:
Onjuist aantal argumenten of ongeldige eigenschapstoewijzigingen.

In bijlage een afbeelding van mijn VBA code.
Win 10

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.127
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: VBA
« Reactie #1 Gepost op: 12 mei 2017, 12:36:35 »
Hallo vdbergha,

ik denk een ongeldige eigenschapstoewijzing.

Vervang "Dim iRow As Long" eens door "Dim iRow As Integer" of "Dim iRow As Range"...

Anders best de hele macro tonen, of nog beter een voorbeeldbestand met de macro.

Een afbeelding is onhandelbaar, kopieer dan beter de (of het deel van) code en plak deze in je reactie.

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline vdbergha

  • Volledig lid
  • **
  • Berichten: 205
  • Geslacht: Man
  • Bedankt voor uw reactie
Re: VBA
« Reactie #2 Gepost op: 12 mei 2017, 12:59:45 »
In bijlage de gevraagde gegevens
Win 10

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.127
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: VBA
« Reactie #3 Gepost op: 12 mei 2017, 13:45:28 »
Hallo vdberha,

ik heb je volledig bestand verwijderd, want je gooit zo de data van + 500 mensen te grabbel.

Om de macro uit te testen is het niet nodig dar er gegevens in je blad "leden" staan.
Je kan alles wissen vanaf rij 2 en hang dan je opgekuisd bestand opnieuw aan.

Haal ook de eventuele beveiligingen er van af.
Welke versie van Excel?

:) SoftAid :)             

Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.127
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: VBA
« Reactie #4 Gepost op: 12 mei 2017, 14:07:37 »
Hallo vdbergha,

probeer volgende code eens of die werkt:

iRow = Sheets("Leden").Cells(Cells.Rows.Count, 1).End(xlUp).Offset(1, 0).RowJe kan die Offset ook vervangen door:
iRow = Sheets("Leden").Cells(Cells.Rows.Count, 1).End(xlUp).Row + 1
:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline vdbergha

  • Volledig lid
  • **
  • Berichten: 205
  • Geslacht: Man
  • Bedankt voor uw reactie
Re: VBA
« Reactie #5 Gepost op: 12 mei 2017, 17:07:19 »
Ik werk met Excel 2016 en de code die u gaf werkt !

Bedankt voor de oplossing !  ;D
Win 10

Offline Warme bakkertje

  • Volledig lid
  • **
  • Berichten: 215
  • Geslacht: Man
Re: VBA
« Reactie #6 Gepost op: 15 mei 2017, 04:45:41 »
Aangezien Integer een kleiner bereik heeft dan Long is het veiliger om Long te gebruiken.
Om onaangename verassingen te vermijden is deze veiliger.

    Dim iRow As Long, ws As Worksheet
    Set ws = Sheets("Leden")
    With ws
        iRow = .Cells(.Rows.Count, 1).End(xlUp).Offset(1).Row
    End With
Windows 10 Home   NLD 64bit

Microsoft Office Professional Plus 2016 US

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.277
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: VBA
« Reactie #7 Gepost op: 15 mei 2017, 22:03:02 »
En om nog even tot de kern van de fout te komen....

Er zijn teveel argumenten in het object "Cells" gebruikt. Wat ik in je gebruikte regel zie ws.Cells(Rows, Count, 1) bevat die 3 argumenten. Door de komma tussen "Rows" en "Count" te vervangen voor een punt, was je er al geweest. Ofwel, slechts een typo was je probleem...  ;)

Dan de vraag of je moet declareren als Long of Integer als je regels gaat tellen? Da's ALTIJD met een Long type. Met een Integer loop je na 32.767 regels (ofwel 16 bit) op een einde. Het beste is dus om je aan te leren om hiervoor altijd met een LONG data type te werken.
______________________________

Groet, Leo

 


www.combell.com