Help!

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

Hulp bij posten

Recente topics

Auteur Topic: Vraag over een stukje code in VBA  (gelezen 2228 keer)

0 leden en 1 gast bekijken dit topic.

Offline Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
Vraag over een stukje code in VBA
« Gepost op: 12 november 2017, 13:06:04 »
Goedendag helpers,

Ik gebruik een code, die veel langer is dan het stukje hieronder maar voor de relevantie heb ik even dit stukje gepakt. De bewuste code komt in de macro onder een 3 tal knoppen voor en nu vroeg ik mij af of ik die code ook in een eigen module kon zetten en dan met een "call" kan aanroepen? Springt de macro dan daarna ook weer gewoon terug naar de oorspronkelijke code, of moet ik daarvoor in de aangeroepen module ook nog een code toevoegen?

If TxtDatum.Text = "" Then Exit Sub
    With Sheets("2017-O").Columns(1)
        Set Gevonden = .Find(DateValue(TxtDatum.Value))
        If Not Gevonden Is Nothing Then
        End If
        InfMndnr.Value = Gevonden.Offset(, 2).Value
        InfKwrtl.Value = Gevonden.Offset(, 3).Value
        InfDagOnl.Value = Gevonden.Offset(, 4).Text
        InfDagRit.Value = Gevonden.Offset(, 5).Value
        InfDagOmzet.Value = Gevonden.Offset(, 7).Text
        InfDagBTWL.Value = Gevonden.Offset(, 9).Text
        InfDagComm.Value = Gevonden.Offset(, 8).Text
        InfDagBTWH.Value = Gevonden.Offset(, 10).Text
        InfDagBet.Value = Gevonden.Offset(, 11).Text
    End With

Mijn dank is weer onnoemelijk groot ;)
Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Vraag over een stukje code in VBA
« Reactie #1 Gepost op: 12 november 2017, 13:37:01 »
Hallo Johan,

Je kan eenvoudig schakelen tussen macro's. De functie Call dient daar NIET voor.

Voorbeeld hoe het wel kan. Kopieer en plak deze code van 2 macro's in een lege Module in een .xlsm werkboek en voer de eerst macro uit.

Sub een()
MsgBox ("een")
twee
End Sub

Sub twee()
MsgBox ("twee")
een
End Sub

:) 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 Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
Re: Vraag over een stukje code in VBA
« Reactie #2 Gepost op: 12 november 2017, 13:49:39 »
Hoi SoftAid,

Okay, die snap ik. wat jij dus zegt is gebruik voor elke knop een eigen macro, ipv onder 1 userform een hele lange macro met de aansturing voor de 3 knoppen?
Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.277
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Vraag over een stukje code in VBA
« Reactie #3 Gepost op: 12 november 2017, 13:53:31 »
@SoftAid, pas op! Zo creëer je een eindeloze lus. De aanroep van procedure een is in procedure twee niet nodig. Daar kom je automatisch bij terug.
______________________________

Groet, Leo

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.277
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Vraag over een stukje code in VBA
« Reactie #4 Gepost op: 12 november 2017, 14:07:03 »
@josc1965, gelijksoortige handelingen in verschillende procedures kan je inderdaad beter afvangen door die in 1 aparte procedure of functie te zetten. Da's veel handiger in het onderhoud.
______________________________

Groet, Leo

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Vraag over een stukje code in VBA
« Reactie #5 Gepost op: 12 november 2017, 14:15:56 »
@SoftAid, pas op! Zo creëer je een eindeloze lus. De aanroep van procedure een is in procedure twee niet nodig. Daar kom je automatisch bij terug.
Ben er me van bewust ;D
Maar het was hier juist de bedoeling met dit eenvoudig voorbeeld dat Johan de wisselwerking zag dat je zo telkens terugschakelt naar de "andere" Sub.

@Johan,
... wat jij dus zegt is gebruik voor elke knop een eigen macro, ipv onder 1 userform een hele lange macro met de aansturing voor de 3 knoppen?
Het is mij toch niet echt duidelijk wat je precies wenst te doen.
ik heb me wel wat verkeken aan je vraagstelling :-[
Je werkt met knoppen. Je spreekt van 3 knoppen in één macro  :blink:.
Een knop stuurt in principe een macro aan, beter gezegd, je start een macro met de druk op een knop (waaraan die macro gekoppeld is).
Je kan verschillende knoppen dezelfde macro laten uitvoeren.

:) 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 Cobbe

  • Lid
  • *
  • Berichten: 35
  • Oplossing.be
Re: Vraag over een stukje code in VBA
« Reactie #6 Gepost op: 12 november 2017, 14:21:55 »
Met :
Gosub
.......
Return

misschien.
Gelieve uw systeemgegevens in te vullen. Klik HIER voor meer informatie.

Offline Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
Re: Vraag over een stukje code in VBA
« Reactie #7 Gepost op: 12 november 2017, 17:37:01 »
@Johan,Het is mij toch niet echt duidelijk wat je precies wenst te doen.
ik heb me wel wat verkeken aan je vraagstelling :-[
Je werkt met knoppen. Je spreekt van 3 knoppen in één macro  :blink:.
Een knop stuurt in principe een macro aan, beter gezegd, je start een macro met de druk op een knop (waaraan die macro gekoppeld is).
Je kan verschillende knoppen dezelfde macro laten uitvoeren.

Die macro is gekoppeld aan een userform en die heeft inderdaad 3 knoppen; "invoer" "herstel" en "Alles invoeren" Ik heb gekozen voor 2 invoer knoppen omdat ik regelmatig, bijna altijd, slechts de helft van de gegevens hoef in te voeren. Soms komt het voor dat ik afwijkende gegevens moet invoeren en daar is dan de 2de invoer knop voor. Bij herstel kan ik gegevens veranderen indien nodig. Bij alle drie van die knoppen komt na de uitvoering een bergje regels met informatie in het userform terecht zodat ik in een oogopslag kan zien of alle gegevens juist zijn. Nu bedacht ik mij dat ik die regels liefst maar 1 keer vermeld/gebruik ipv drie keer, vandaar mijn vraag ;)

Ik had jouw voorbeeld macro ook niet geprobeerd, ik zag gelijk dat het een soort van loop was ;)
Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

Offline Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
Re: Vraag over een stukje code in VBA
« Reactie #8 Gepost op: 12 november 2017, 17:55:14 »
Ik heb even lopen sleutelen, en het werkt :D Dank allen voor het meedenken
Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

 


www.combell.com