Help!

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

Hulp bij posten

Recente topics

Auteur Topic: VBA-code versnellen/aanpassen/opschonen...  (gelezen 12241 keer)

0 leden en 2 gasten bekijken dit topic.

Offline Montagnard

  • Ambassadeur
  • *****
  • Berichten: 2.385
  • Geslacht: Man
  • To Windows or not to Windows , that's the question
Re: VBA-code versnellen/aanpassen/opschonen...
« Reactie #45 Gepost op: 01 september 2021, 14:36:43 »
@BlackDevil : ben er even gaan op letten en idd , ik heb mijn beide listboxen even groot gemaakt wat hoogte betreft , alsook dezelfde positie in het UF gegeven en van zodra ik een categorie aanklik in de linkse listbox veranderd de rechtse listbox ook een heel klein beetje van grootte  :-X
bugje in vba/Excel ?

Mvg,
Montagnard.
HP ProBook 450 G3 15 inch
OS : Windows 11 Pro NLD 64bit
Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
16 GB  Vengeance 2666 MHz
KINGSTON SA400S37480G - 447,13 GB als bootdisk
WD Blue Solid state 2 TB - intern - M.2 2280 - SATA als datadisk
AV: Windows Defender
FW: Windows Firewal

Offline AD1957

  • Ervaren lid
  • ***
  • Berichten: 250
  • Oplossing.be
Re: VBA-code versnellen/aanpassen/opschonen...
« Reactie #46 Gepost op: 01 september 2021, 14:42:52 »
Geen idee waar dit door komt.

Nog vreemder is dat in het bestand van Montagnard bij openen van de UF de listboxen in hoogte gelijk zijn.
Bij click in listbox1 wordt listbox2 behoorlijk kleiner.

Bij BlackDevil is listbox2 bij openen hoger en bij click in listbox1 gelijk aan listbox1.

Wachten op een ECHTE expert. :help:
Groet,

Albert

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: VBA-code versnellen/aanpassen/opschonen...
« Reactie #47 Gepost op: 01 september 2021, 14:52:06 »
Inderdaad allemaal vreemd...

Maar nu bedenkt ik net dat ik bij het ontwerpen van de UF ook iets dergelijks had opgemerkt ivm de weergegeven lettergrootte van de labels,
op een bepaalde positie werd het lettertype groter weergegeven dan in andere labels met dezelfde ingestelde lettergrootte....
Hier had ik gemerkt dat het probleem opgelost werd door de uitlijning (positie) en/of hoogte van het label met 1 punt te wijzigen.
Zelfs een wijziging in de grootte/positie van de frames leek op sommige labels alzo een invloed te hebben op de weergegeven tekstgrootte.

Misschien dat dit fenomeen met die ListBoxen ook daar ergens te zoeken moet zijn want als ik hierbij de positie en hoogte wat aanpas
wordt het verschil in de hoogtes dat ontstaat bij het openen toch iets kleiner...

Ik ga nog wat verder testen met die uitlijning, misschien krijg ik het op die manier opgelost...

groetjes,
BlackDevil
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline AD1957

  • Ervaren lid
  • ***
  • Berichten: 250
  • Oplossing.be
Re: VBA-code versnellen/aanpassen/opschonen...
« Reactie #48 Gepost op: 01 september 2021, 14:53:40 »
Ik heb geen idee wat dit veroorzaakt.
Eventuele oplossing:

in de Userform_Initialize en Listbox1_Click dit toevoegen.
ListBox2.Height = ListBox1.Height
Groet,

Albert

Offline AD1957

  • Ervaren lid
  • ***
  • Berichten: 250
  • Oplossing.be
Re: VBA-code versnellen/aanpassen/opschonen...
« Reactie #49 Gepost op: 01 september 2021, 15:33:09 »
Op een of andere manier wordt het veroorzaakt door de hoogte van de Listboxen en
de instelling van Column.width.

In de eigenschappen van beide listboxen dit eens aangepast.
Column.widht = 70
Height=145

Probleem lijkt hiermee ook verholpen, lijkt me dat het veroorzaakt wordt door de horizontale schuifbalk van de Listboxen.
Groet,

Albert

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: VBA-code versnellen/aanpassen/opschonen...
« Reactie #50 Gepost op: 01 september 2021, 17:40:08 »
Zoals in mijn vorig bericht vermeld heb ik wat aan het testen en puzzelen geweest met de hoogtes en posities van alle objecten in het UF.
Heb uiteindelijk alle hoogtes, breedtes, left-posities en top-posities van alle objecten dusdanig aangepast dat dit steeds een veelvoud van 6 was en hiermee had ik het oorspronkelijk verschil (van meerdere punten) dat ik had opgemerkt kunnen reduceren naar 1 punt.

Toen ik dit nu hier wou komen posten zag ik het laatste berichtje van Albert en en heb ik zijn bevinding dan ook eens getest en ja, die ColumnWidths een waarde geven lijkt de oplossing te zijn...
Nu is mijn test en puzzelwerk van de laatste 2 uur niet helemaal verloren tijd geweest want nu is het ontwerp heel netjes uitgelijnd en heb ik hierdoor zowel de breedte als de hoogte van de UF toch ook wat kunnen verkleinen.

Verder heb ik alle VBA-code ook nog eens grondig doorgenomen en voor zover mijn kennis reikt en ik alles wat heb kunnen uittesten ziet het ernaar uit dat mijn bestand vermoedelijk klaar is om in gebruik genomen te worden... uiteraard zullen er nog zaken beter kunnen maar zolang het eindresultaat goed is en ik geen foutmeldingen krijg kan ik er toch reeds mee aan de slag. Het blijven bijschaven van de code zal dan wel, naarmate het bestand langer in gebruik is, beetje bij beetje uitgevoerd worden vermoed ik.


groetjes,
BlackDevil
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline AD1957

  • Ervaren lid
  • ***
  • Berichten: 250
  • Oplossing.be
Re: VBA-code versnellen/aanpassen/opschonen...
« Reactie #51 Gepost op: 01 september 2021, 21:40:55 »
Dit zul je er nog moeten bijzetten in de UF (uitgaande van je laatste voorbeeldbestand)
Private Sub Txt_sombedrag_Change()
 Txt_sombedrag = Replace(Txt_sombedrag, ".", ",")
End Sub

Voor maar eens een bedrag in met decimalen in Txt_sombedrag.
Groet,

Albert

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.277
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: VBA-code versnellen/aanpassen/opschonen...
« Reactie #52 Gepost op: 01 september 2021, 22:16:16 »
Gebruik bij het wegschrijven van een decimale waarde die is ingevuld in een Textbox op een UF niet de standaard eigenschap Value van het range (of cells) object, maar de Value2 eigenschap. Die gebruikt de lokale instellingen met het wegschrijven waarmee je dus geen Replace hoeft uit te voeren.
______________________________

Groet, Leo

Offline AD1957

  • Ervaren lid
  • ***
  • Berichten: 250
  • Oplossing.be
Re: VBA-code versnellen/aanpassen/opschonen...
« Reactie #53 Gepost op: 01 september 2021, 22:39:53 »
Hallo Leo,

Het gaat me niet om het wegschrijven maar:
Als ik hier handmatig 12,30 invul in de textbox komt er 123,00 te staan. (bij gebruik van het num.toetsenbord)
Groet,

Albert

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: VBA-code versnellen/aanpassen/opschonen...
« Reactie #54 Gepost op: 02 september 2021, 06:33:18 »
@Albert,

Hartelijk dank voor je melding, dit was er nu net eentje dat ik niet getest had... had bij handmatige ingave enkel maar gehele bedragen gebruikt waardoor ik dit dus nog niet opgemerkt had... Heb ondertussen jouw aanbevolen code hiervoor toegevoegd.  :thumbsup:

groetjes,
BlackDevil
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.277
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: VBA-code versnellen/aanpassen/opschonen...
« Reactie #55 Gepost op: 02 september 2021, 10:48:33 »
Als ik hier handmatig 12,30 invul in de textbox komt er 123,00 te staan. (bij gebruik van het num.toetsenbord)
??? Als je het numerieke eiland gebruikt, zie je in de tekstbox toch exact verschijnen wat je intikt? Dus "een twee punt twee vijf" zie je toch als 12.25 verschijnen?
Het gaat pas "mis" als je deze waarde wegschrijft naar de sheet.
______________________________

Groet, Leo

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: VBA-code versnellen/aanpassen/opschonen...
« Reactie #56 Gepost op: 02 september 2021, 11:34:41 »
@RedHead,

Mijn textboxen voor de bedragen staan ingesteld met "FormatCurrency".
Als ik 12,30 intyp op het numeriek toetsenbord dan zie ik ook effectief 12,30 verschijnen (dus wel de komma, niet het punt) maar als ik dan op enter drukte om het volgende veld in te vullen dan stond er inderdaad €123,00 zoals Albert aangaf.
Nadat ik de voorgestelde code van Albert had toegevoegd krijg ik nu na mijn enter netjes €12,30 te zien...


groetjes,
BlackDevil
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline AD1957

  • Ervaren lid
  • ***
  • Berichten: 250
  • Oplossing.be
Re: VBA-code versnellen/aanpassen/opschonen...
« Reactie #57 Gepost op: 02 september 2021, 11:37:26 »
Volledigheidshalve:
Private Sub Txt_sombedrag_AfterUpdate()
If Txt_sombedrag <> "" Then
    Txt_sombedrag = FormatCurrency(Txt_sombedrag)
End If
End Sub
Private Sub Txt_sombedrag_Change()
 Txt_sombedrag = Replace(Txt_sombedrag, ".", ",")
End Sub

Zonder de Replace gaat het mis.
Groet,

Albert

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: VBA-code versnellen/aanpassen/opschonen...
« Reactie #58 Gepost op: 03 september 2021, 10:34:58 »
Goede voormiddag iedereen,

Hier ben ik weer  ;D...
... met een (raar) probleempje....

Voor de werking van mijn UF heb ik voor de tweede lisbox klik-event volgende code :
Private Sub ListBox2_Click()
Txt_sombedrag.Value = ""
Txt_standnata.Value = ""
For i = 1 To 4
    If ListBox2.Value = Me("Lbl_inV" & i).Caption Then Txt_sombedrag.Value = Me("Txt_sominV" & i).Value
    If ListBox2.Value = Me("Lbl_inS" & i).Caption Then Txt_sombedrag.Value = Me("Txt_sominS" & i).Value
Next i
For i = 1 To 20
    If ListBox2.Value = Me("Lbl_uitV" & i).Caption Then Txt_sombedrag.Value = Me("Txt_somuitV" & i).Value
    If ListBox2.Value = Me("Lbl_uitS" & i).Caption Then Txt_sombedrag.Value = Me("Txt_somuitS" & i).Value
Next i
Txt_sombedrag.SetFocus
If Txt_sombedrag.Value <> "" Then
    Txt_sombedrag = FormatCurrency(Txt_sombedrag)
    If ListBox1.Value = "INKOMSTEN" Then
        Txt_standnata.Value = CDbl(Txt_somzicht.Value) + CDbl(Txt_sombedrag.Value)
    Else
        Txt_standnata.Value = CDbl(Txt_somzicht.Value) - CDbl(Txt_sombedrag.Value)
    End If
    Txt_standnata = FormatCurrency(Txt_standnata)
End If
End Sub

Deze werkt voor alles zonder problemen BEHALVE als ik bij de 1e categorie van de 1e listbox dan in de 2e listbox de eerste vermelding wil aanklikken, dan gaat het fout...
Het is echt enkel maar bij die keuze dat de code een foutmelding geeft, voor alle andere keuzes voert hij de code perfect uit.

Zelf vind ik totaal de oorzaak niet.
Iemand een idee???

groetjes,
BlackDevil
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline AD1957

  • Ervaren lid
  • ***
  • Berichten: 250
  • Oplossing.be
Re: VBA-code versnellen/aanpassen/opschonen...
« Reactie #59 Gepost op: 03 september 2021, 13:39:30 »
In het laatste voorbeeldbestand dat ik heb werkt het gewoon.
Op welke regel gaat het dan fout en wat is de foutmelding?
Loop eens met F8 door de code en anders een voorbeeldbestand.

p.s. Ga nu weg, reactie kan even duren.
Maar er zijn hier op dit forum genoeg  vba specialisten die kunnen helpen.( daar reken ik mezelf nog steeds niet bij ;D)
Groet,

Albert

 


www.combell.com