Je dispose d'un tableau de plusieurs milliers de lignes et de dizaines de colonnes.
Dans certaines de ces cellules, je souhaite remplacer la chaine "aXb-cXd" par "aXb-c", ou a, b, c et d sont des nombres entiers < 1000 et X une seule lettre.
Le fait qu'il y ait deux fois la lettre X me bloque dans ma macro.
Comment enlever de chaque cellule la fin de la chaine "Xd", sachant que d'autres cellules n'ont pas ce format ? Je sèche ..
J'y avais pensé mais pas poussé du tout plus en avant. C'est assez "rigolo" comment le cerveau perçoit en une fraction de seconde si c'est OK ou non et combien c'est plus compliqué de le coder. Vba n'est sans doute pas le meilleur langage pour le faire.
oh non c'est largement plus rapide en bath en JS c'est plus rapide aussi même avec un regex
MAIS bon c'est rigolo et ça occupe
d'ailleurs je suis tenté de le faire en VBA dans un scriptcontrol en JS
mais ta version est largement a la hauteur des attentes du demandeur
la je m'amuse
étant un vbiste a la base je privilégie les outils que l'on avait en vb vbs a l’époque
c'est dommage que l'on ai pas de quantifieur avec like (a moins que je l'ignore) sinon 2 lignes de code et c'est bouclé
Une version v11b qui est au moins deux fois plus rapide que ma version v1 (au marteau-pilon (*) qu'on l'a fait le code ).
* présence ignominieuse de GOTO
et va y que je t'exit et que je te goto et que ... et que .....
puré a un moment j'ai cru être sur mon amstrad 6128 y manque plus qu'un "locate" et on y est
si je ne me trompe pas je shunte un test je remplace
ceci
VB:
For k = 1 To h
c = Mid(t(i, j), k, 1): If Not c Like "#" Then Exit For Else q = q + 1
Next k
If q > 3 Or q = 0 Then GoTo Suivant
If Not Mid(t(i, j), k, 1) Like "[A-Z]" Then GoTo Suivant
par
VB:
For k = 1 To h
If Mid(t(i, j), k, 1) Like "[A-Z]" And Val(t(i, j)) < 1000 Then k = k - 1: exit for Else GoTo Suivant
Next k
c'est puré ca fait un paquet d'année ca
mes premiers pas sur un pc c'est sur les MO5 et TO9+ de thomson je devais avoir 12/13 ans si je me souviens bien et je l'ai toujours mon 6128 je sais meme pas si il marcherait encore les composants ont du sécher