*

Help!

Problemen met uw pc? De vrijwilligers van oplossing.be zoeken gratis met u mee! 8)

Meer weten over Oplossing.be?

Hoe stel ik een vraag?

Recent

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

Offline Josc1965

  • Lid
  • *
  • Berichten: 88
  • Geslacht: Man
  • Oplossing.be
    • Taxi Schurink
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
AMD A4-5000 APU with Radeon(TM) HD Graphics     1500
216F
AMD Radeon HD 8330 512MB 1366 x 768
Realtek High Definition Audio
Nr: 1 Model: HGST HTS545050A7E380 SATA Disk Device
C:\ NTFS 445,44GB 204,10GB 3.555MB

Offline SoftAid

  • Globale Moderator
  • Ambassadeur
  • *****
  • Berichten: 16.460
  • 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 :)             


Vul je systeemgegevens in: (Klik hier!)

GIGABYTE P67A-UD4-B3 - Intel(R)Core(TM) i7-2600 CPU@3.4GHz
Kingston - 8 GB 1333MHz DDR3 Non-ECC DIMM
EVGA GeForce GTS450 1GB
1- KINGSTON V300 SSD 240 GB 
2- OCZ Vertex III  SATA SSD 3 120 GB
3- WDC SATA 1TB
4- Externe 2TB
2 x SM2443BW/24" LCD 1920X1200 DV
Win 7 PRO SP1 64-bit NL
Office 2007 + 2003 NL SP3   WLM   Chrome
AVAST

Offline Josc1965

  • Lid
  • *
  • Berichten: 88
  • Geslacht: Man
  • Oplossing.be
    • Taxi Schurink
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
AMD A4-5000 APU with Radeon(TM) HD Graphics     1500
216F
AMD Radeon HD 8330 512MB 1366 x 768
Realtek High Definition Audio
Nr: 1 Model: HGST HTS545050A7E380 SATA Disk Device
C:\ NTFS 445,44GB 204,10GB 3.555MB

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 1.679
  • 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 creer 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: 1.679
  • 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

Offline SoftAid

  • Globale Moderator
  • Ambassadeur
  • *****
  • Berichten: 16.460
  • 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 creer 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 :)             


« Laatst bewerkt op: 12 november 2017, 14:44:41 door SoftAid »
Vul je systeemgegevens in: (Klik hier!)

GIGABYTE P67A-UD4-B3 - Intel(R)Core(TM) i7-2600 CPU@3.4GHz
Kingston - 8 GB 1333MHz DDR3 Non-ECC DIMM
EVGA GeForce GTS450 1GB
1- KINGSTON V300 SSD 240 GB 
2- OCZ Vertex III  SATA SSD 3 120 GB
3- WDC SATA 1TB
4- Externe 2TB
2 x SM2443BW/24" LCD 1920X1200 DV
Win 7 PRO SP1 64-bit NL
Office 2007 + 2003 NL SP3   WLM   Chrome
AVAST

Offline Cobbe

  • Excel-Expert
  • 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

  • Lid
  • *
  • Berichten: 88
  • Geslacht: Man
  • Oplossing.be
    • Taxi Schurink
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
AMD A4-5000 APU with Radeon(TM) HD Graphics     1500
216F
AMD Radeon HD 8330 512MB 1366 x 768
Realtek High Definition Audio
Nr: 1 Model: HGST HTS545050A7E380 SATA Disk Device
C:\ NTFS 445,44GB 204,10GB 3.555MB

Offline Josc1965

  • Lid
  • *
  • Berichten: 88
  • Geslacht: Man
  • Oplossing.be
    • Taxi Schurink
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
AMD A4-5000 APU with Radeon(TM) HD Graphics     1500
216F
AMD Radeon HD 8330 512MB 1366 x 768
Realtek High Definition Audio
Nr: 1 Model: HGST HTS545050A7E380 SATA Disk Device
C:\ NTFS 445,44GB 204,10GB 3.555MB

 


www.combell.com