Help!

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

Hulp bij posten

Recente topics

Auteur Topic: VBA : split en replace  (gelezen 2804 keer)

0 leden en 1 gast bekijken dit topic.

Offline Margriet1932

  • Lid
  • *
  • Berichten: 43
  • Geslacht: Vrouw
  • Hey, ik ben nieuw hier !
Re: VBA : split en replace
« Reactie #45 Gepost op: 11 december 2022, 17:57:50 »
misschien een eenvoudiger versie
Sub compleet()
     For w = 1 To 8191
          Select Case w
               Case 1, 8 To 15, 64 To 127, 512 To 1023,  4096 To 8191
                    lijst_kwrtrbld (w)
                    kwrtrbld_html
                    opslaan
          End Select
     Next w
End Sub

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: VBA : split en replace
« Reactie #46 Gepost op: 12 december 2022, 11:35:18 »
@Molly,

Na alle vba-code overgezet te hebben naar mijn werkelijk bestand ben ik nog 1 klein probleempje tegengekomen in het allereerste deel van het hele project, nl. de omzet van de weergave in de originele gegevenslijst naar de gewenste weergave.

Regelmatig doet er zich een kwartierherhaling voor welke op een bepaalde manier wordt weergeven in de originele lijst naast de naam van de betreffende persoon (dus in dezelfde cel).
Dat verstoort natuurlijk de gewenste weergave met de huidige werkwijze van de code.

Wanneer zulke kwartierherhaling zich voordoet wordt er door die web-applicatie naast de naam een pijltje met daarnaast het andere sosa-nr waaronder die persoon voorkomt, weergegeven.
Als dit maar één keer zou voorkomen kan dat natuurlijk makkelijk nog handmaitg gecorrigeerd worden maar in mijn geval, met 26 generaties, komt zo een kwartierherhaling wel redelijk frequent voor en door de grote hoeveelheid aan namen weet ik ook niet uit het hoofd waar die kwartierherhalingen zich bevinden.

Dus ik zou op voorhand, net zoals voor het weghalen van gegevens tussen (), ook die vermeldingen willen laten weghalen.

Hoe pak ik dit het beste aan? En hoe achterhaal ik de vba-code van dat specifieke pijltje?


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 MollyVH

  • Excel-Expert
  • Oplosser
  • *****
  • Berichten: 847
Re: VBA : split en replace
« Reactie #47 Gepost op: 12 december 2022, 11:55:14 »
Hey BlackDevil,

Je stelt mij voor een heel groot raadsel, hoor. Een voorbeeldbestandje met een paar rijtjes zou misschien wel klaarheid kunnen brengen...

Groetjes,
Molly
Windows 11 Home NLD 64bit
11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz 2496
Aspire TC-1660
Intel(R) UHD Graphics 750 1024MB
476 GB SSD KINGSTON OM8PCP3512F-AA
1863 GB HD Seagate ST2000DM008-2FR102
Office 2021 Professional Plus NLD 64bit

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: VBA : split en replace
« Reactie #48 Gepost op: 12 december 2022, 12:20:21 »
Hey Molly,

Sorry, vergeten  :-[ ...

Heb ondertussen wel de unicode van het pijltje kunnen achterhalen : 8594

Op rij 10 en 11 van werkblad "Blad1" heb ik dergelijke vermelding geplaatst.


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 MollyVH

  • Excel-Expert
  • Oplosser
  • *****
  • Berichten: 847
Re: VBA : split en replace
« Reactie #49 Gepost op: 12 december 2022, 13:00:29 »
Hey BlackDevil,

Dat maakt het inderdaad stukken eenvoudiger :D
Het zal niet te veel verschil maken wáár je dat doet, als het maar ergens vooraan in je code is ;)
Dan zullen deze extra lijntjes vermoedelijk volstaan (als ik mag veronderstellen dat het pijltje altijd wordt voorafgegaan door een spatie)
pijl = InStr(brnaam, ChrW(8594))
If pijl > 0 Then brnaam = Left(brnaam, pijl - 1)

Groetjes,
Molly
Windows 11 Home NLD 64bit
11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz 2496
Aspire TC-1660
Intel(R) UHD Graphics 750 1024MB
476 GB SSD KINGSTON OM8PCP3512F-AA
1863 GB HD Seagate ST2000DM008-2FR102
Office 2021 Professional Plus NLD 64bit

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: VBA : split en replace
« Reactie #50 Gepost op: 12 december 2022, 13:15:32 »
Hey Molly,

Bedankt voor je reactie. :-)

ondertussen had ik het ook al gevonden maar ik had er dit van gemaakt (zonder de voorwaarde  ;D)
    brnaam = Left(brnaam, InStr(brnaam, ChrW(8594)) - 1)

dus gewoon nog die voorwaarde eraan toevoegen en ik kan verder  :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 BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: VBA : split en replace
« Reactie #51 Gepost op: 12 december 2022, 13:50:58 »
wel.... ::) .... ik kon inderdaad weer verder.... voor eventjes dan toch.... :D ....

Na de omzet en alle andere sub's succesvol uitgevoerd te hebben ben ik opnieuw tegen een probleem gebotst bij de weergave van de html-pagina's.
En meer bepaald bij de weergave van "é", "è", "ë", ed.... Ik had hier aanvankelijk geen rekening mee gehouden omdat wanneer ik het rechtstreeks zo ingeef hij dan die foute weergave niet geeft.
Ik had dit gisteren ook al opgemerkt met de weergave van "°" dat voor de geboorte-datum komt te staan en dat heb ik dan vervangen door "°" dus dat was opgelost.
Maar aan die speciale letters had ik dus niet meer gedacht.
Maar nu ik met effectieve namen bezig ben komt er wel eens geregeld zulke letter tussen en dan krijg ik een foutieve weergave in de uiteindelijke html-pagina.

Dus om al die mogelijke letters te vervangen in het juiste teken zou ik dus ook daarvoor nog wat code moeten toevoegen in die omzet-sub.
Maar omdat het hier nu gaat om meerdere soorten van die letters ben ik eventjes de focus kwijt over hoe het aan te pakken.

Alvast mijn oprechte dank op voorhand  _/-\o_

groetjes,
BlackDevil


*** toevoeging ***

Bij de voornamen kom ik volgende letters tegen : é, è, ë, ï en ç .
Maar ook bij de familienamen kom ik deze letters tegen : é, ë en ç en dan wordt het iets moeilijker denk ik omdat de familienamen volledig in hoofdletters moeten,
dus "é" moet "É" worden, "ë" moet "Ë" worden en dan ja, geen idee hoe je ç in een hoofdletter krijgt eigenlijk...
Ook heb ik vaak familienamen waar een ' in voorkomt zoals bevoorbeeld D'haeyer ..... waarbij de ' vermoedelijk ook foutief zal weergegeven worden...

het wordt weer een ferm puzzeltje om in elkaar te prutsen denk ik  :D
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 MollyVH

  • Excel-Expert
  • Oplosser
  • *****
  • Berichten: 847
Re: VBA : split en replace
« Reactie #52 Gepost op: 12 december 2022, 14:57:55 »
Hey BlackDevil,

Blijf vooral kalm :D

In het testdocument waarover ik beschik staan geen familienamen in hoofdletters, maar niet getreurd ;), dat komt wel weer goed.
Verzin misschien al eens een record waar alle mogelijke (of minstens véél) 'rariteiten' in vervat zitten.
En wijzig in je code
.createtextfile(d00 & "proband_sosa-" & sosanr & ".html").write Join(Application.Transpose(Sheets("kwrtrbld-html").Range("A1:A159")), vbLf)door
.createtextfile(d00 & "proband_sosa-" & sosanr & ".html", True, True).write Join(Application.Transpose(Sheets("kwrtrbld-html").Range("A1:A159")), vbLf)
En dan: testen maar :)

Groetjes,
Molly
Windows 11 Home NLD 64bit
11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz 2496
Aspire TC-1660
Intel(R) UHD Graphics 750 1024MB
476 GB SSD KINGSTON OM8PCP3512F-AA
1863 GB HD Seagate ST2000DM008-2FR102
Office 2021 Professional Plus NLD 64bit

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: VBA : split en replace
« Reactie #53 Gepost op: 12 december 2022, 15:19:51 »
 :D :D :D :D :D :D :D :D :D

hahaha.... ben ik al die codes gaan opzoeken voor niets  ;D

ik snap je stelling van "blijf vooral kalm"  :D

zo simpel  :-[  \o/
weer iets bijgeleerd  :thumbsup:


 _/-\o_ _/-\o_ _/-\o_  :thumbsup: :thumbsup:
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 JEC

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 422
Re: VBA : split en replace
« Reactie #54 Gepost op: 12 december 2022, 21:59:59 »
Als alternatief voor het filesystemobject:

Open d00 & "proband_sosa-" & sosanr & ".html" For Output As #1
Print #1, Join(Application.Transpose(Sheets("kwrtrbld-html").Range("A1:A159")), vbLf)
Close #1

 


www.combell.com