OVH Cloud OVH Cloud

VBA - Excelabo sub rechercheremplacer 1 ligne à modifier en deux lignes

4 réponses
Avatar
twinley
Bonsoir,

Je ressors et reformule ma question qui a légèrement évoluée et qui
risque d'être enterrée ou noyée par le Beaujolais.

Avec la sub d'Excelabo qui modifie une partie de ligne de code.

http://www.excelabo.net/xl/macros.php#rechercheremplacer

Les manips fonctionnent bien si je modifie 1 ligne seulement avec cette
sub par ex :
Rechercher = "Par ex 5 ou 15 ou 130 "
par
Remplacer = "Par ex 5 ou 15 ou 130 ou 1230"

Mais cela se corse si je veux chercher avec une string qui contient des
retour de ligne.

chercher :

Case 3 ' e.g., 145 = 1:45
.Value = Left(.Value, 1) & ":" & Right(.Value, 2)

et que je veux le remplacer par

Case 3 ' e.g., 145 = 1:45
.Value = Left(.Value, 1) & ":" & Right(.Value, 2)
Case 4 ' e.g., 1245 = 12:45
.Value = Left(.Value, 2) & ":" & Right(.Value, 2)


Là, je ne compile pas, il y a un problème de retour à la ligne. Je ne
trouve pas la syntaxe.

J'ai essayé entre autre :
Rechercher = "Case 3 ' e.g., 145 = 1:45 _ .Value = Left(.Value,
1) & "":"" & Right(.Value, 2)"
Remplacer = "Case 3 ' e.g., 145 = 1:45 _ .Value = Left(.Value,
1) & "":"" & Right(.Value, 2) _ Case 4 ' e.g., 1245 = 12:45 _ .Value
= Left(.Value, 2) & "":"" & Right(.Value, 2)"

Mais cela ne modifie pas, à cause des retour à la ligne et du " de fin
de string qui s'installe tout seul.

Si quelqu'un à une solution pour faire évoluer cette macro de
rechercheremplacer d'une ligne en macro rechercheremplacer de plusieurs
lignes ?



merci pour l'aide


--
à+twinley

4 réponses

Avatar
Christophe JEAN
Bonjour,

"twinley" a écrit dans le message de news:


Bonsoir,

Je ressors et reformule ma question qui a légèrement évoluée et qui risque
d'être enterrée ou noyée par le Beaujolais.

Avec la sub d'Excelabo qui modifie une partie de ligne de code.

http://www.excelabo.net/xl/macros.php#rechercheremplacer

Les manips fonctionnent bien si je modifie 1 ligne seulement avec cette
sub par ex :
Rechercher = "Par ex 5 ou 15 ou 130 "
par
Remplacer = "Par ex 5 ou 15 ou 130 ou 1230"

Mais cela se corse si je veux chercher avec une string qui contient des
retour de ligne.

chercher :

Case 3 ' e.g., 145 = 1:45
.Value = Left(.Value, 1) & ":" & Right(.Value, 2)

et que je veux le remplacer par

Case 3 ' e.g., 145 = 1:45
.Value = Left(.Value, 1) & ":" & Right(.Value, 2)
Case 4 ' e.g., 1245 = 12:45
.Value = Left(.Value, 2) & ":" & Right(.Value, 2)


*****************************************************


Et si tu essayais :
Case 3 ' e.g., 145 = 1:45
.Value = TimeSerial(Left(.Value, 1) , Right(.Value, 2),0)
Case 4 ' e.g., 1245 = 12:45
.Value = TimeSerialLeft(.Value, 2),Right(.Value, 2),0)

*****************************************************

Là, je ne compile pas, il y a un problème de retour à la ligne. Je ne
trouve pas la syntaxe.

J'ai essayé entre autre :
Rechercher = "Case 3 ' e.g., 145 = 1:45 _ .Value = Left(.Value, 1)
& "":"" & Right(.Value, 2)"
Remplacer = "Case 3 ' e.g., 145 = 1:45 _ .Value = Left(.Value, 1) &
"":"" & Right(.Value, 2) _ Case 4 ' e.g., 1245 = 12:45 _ .Value =
Left(.Value, 2) & "":"" & Right(.Value, 2)"

Mais cela ne modifie pas, à cause des retour à la ligne et du " de fin de
string qui s'installe tout seul.

Si quelqu'un à une solution pour faire évoluer cette macro de
rechercheremplacer d'une ligne en macro rechercheremplacer de plusieurs
lignes ?
*****************************************************

Pour rappel, les retours de lignes se font par
espace suivi d'un underscore, exemple :

blablabla.blablabla.Méthode Machin1 := _ 'et retour de ligne
lasuitedelinstruction
*****************************************************




merci pour l'aide

*****************************************************

de rien

@ +

Christophe
*****************************************************


--
à+twinley


Avatar
twinley
Bon, ben c'est pas facile

cela doit ressembler à ça

Dim Coderech, Coderemp

Coderech = Array("Case 3 ' e.g., 145 = 1:45 ", _
".Value = Left(.Value, 1) "" & "":"" &
""Right(.Value, 2)")

Coderemp = Array("Case 3 ' e.g., 145 = 1:45 ", _
".Value = Left(.Value, 1) "" & "":"" &
""Right(.Value, 2)", _
"Case 4 ' e.g., 1245 = 12:45 ", _
".Value = Left(.Value, 2) "" & "":"" &
""Right(.Value, 2)")

Rechercher = Coderech
Remplacer = Coderemp

mais j'ai une erreur de type 13 et puis plus loin la boucle de
reconstruction va me pourir la vie.

Je change de tactique, tuer la macro de feuille et la recopier sous sa
forme modifiée.

à+twinley

twinley wrote:

Bonsoir,

Je ressors et reformule ma question qui a légèrement évoluée et qui
risque d'être enterrée ou noyée par le Beaujolais.

Avec la sub d'Excelabo qui modifie une partie de ligne de code.

http://www.excelabo.net/xl/macros.php#rechercheremplacer

Les manips fonctionnent bien si je modifie 1 ligne seulement avec cette
sub par ex :
Rechercher = "Par ex 5 ou 15 ou 130 "
par
Remplacer = "Par ex 5 ou 15 ou 130 ou 1230"

Mais cela se corse si je veux chercher avec une string qui contient des
retour de ligne.

chercher :

Case 3 ' e.g., 145 = 1:45
.Value = Left(.Value, 1) & ":" & Right(.Value, 2)

et que je veux le remplacer par

Case 3 ' e.g., 145 = 1:45
.Value = Left(.Value, 1) & ":" & Right(.Value, 2)
Case 4 ' e.g., 1245 = 12:45
.Value = Left(.Value, 2) & ":" & Right(.Value, 2)


Là, je ne compile pas, il y a un problème de retour à la ligne. Je ne
trouve pas la syntaxe.

J'ai essayé entre autre :
Rechercher = "Case 3 ' e.g., 145 = 1:45 _ .Value = Left(.Value,
1) & "":"" & Right(.Value, 2)"
Remplacer = "Case 3 ' e.g., 145 = 1:45 _ .Value = Left(.Value, 1)
& "":"" & Right(.Value, 2) _ Case 4 ' e.g., 1245 = 12:45 _ .Value =
Left(.Value, 2) & "":"" & Right(.Value, 2)"

Mais cela ne modifie pas, à cause des retour à la ligne et du " de fin
de string qui s'installe tout seul.

Si quelqu'un à une solution pour faire évoluer cette macro de
rechercheremplacer d'une ligne en macro rechercheremplacer de plusieurs
lignes ?



merci pour l'aide




Avatar
twinley
Bonsoir,

merci pour tes suggestions.
Juste au moment ou je baisse les bras...
J'ai essayé pas mal de chose dont & chr13 & et aussi , _
mais je sèche.
La var 'rechercher' est un string. Elle n'aime pas les lignes.
Je pars sur une autre alternative, tuer la macro, ce que je viens de
faire avec succés pour un module de feuille. Je vais faire une boucle
pour toutes les feuilles.
Il faut que je trouve comment réinstaller la sub modifiée dans son
intégralité depuis un fichier texte par exemple.

Bonne soirée

à+twinley

Christophe JEAN wrote:
Bonjour,

"twinley" a écrit dans le message de news:


Bonsoir,

Je ressors et reformule ma question qui a légèrement évoluée et qui risque
d'être enterrée ou noyée par le Beaujolais.

Avec la sub d'Excelabo qui modifie une partie de ligne de code.

http://www.excelabo.net/xl/macros.php#rechercheremplacer

Les manips fonctionnent bien si je modifie 1 ligne seulement avec cette
sub par ex :
Rechercher = "Par ex 5 ou 15 ou 130 "
par
Remplacer = "Par ex 5 ou 15 ou 130 ou 1230"

Mais cela se corse si je veux chercher avec une string qui contient des
retour de ligne.

chercher :

Case 3 ' e.g., 145 = 1:45
.Value = Left(.Value, 1) & ":" & Right(.Value, 2)

et que je veux le remplacer par

Case 3 ' e.g., 145 = 1:45
.Value = Left(.Value, 1) & ":" & Right(.Value, 2)
Case 4 ' e.g., 1245 = 12:45
.Value = Left(.Value, 2) & ":" & Right(.Value, 2)




*****************************************************

Et si tu essayais :
Case 3 ' e.g., 145 = 1:45
.Value = TimeSerial(Left(.Value, 1) , Right(.Value, 2),0)
Case 4 ' e.g., 1245 = 12:45
.Value = TimeSerialLeft(.Value, 2),Right(.Value, 2),0)

*****************************************************


Là, je ne compile pas, il y a un problème de retour à la ligne. Je ne
trouve pas la syntaxe.

J'ai essayé entre autre :
Rechercher = "Case 3 ' e.g., 145 = 1:45 _ .Value = Left(.Value, 1)
& "":"" & Right(.Value, 2)"
Remplacer = "Case 3 ' e.g., 145 = 1:45 _ .Value = Left(.Value, 1) &
"":"" & Right(.Value, 2) _ Case 4 ' e.g., 1245 = 12:45 _ .Value =
Left(.Value, 2) & "":"" & Right(.Value, 2)"

Mais cela ne modifie pas, à cause des retour à la ligne et du " de fin de
string qui s'installe tout seul.

Si quelqu'un à une solution pour faire évoluer cette macro de
rechercheremplacer d'une ligne en macro rechercheremplacer de plusieurs
lignes ?


*****************************************************
Pour rappel, les retours de lignes se font par
espace suivi d'un underscore, exemple :

blablabla.blablabla.Méthode Machin1 := _ 'et retour de ligne
lasuitedelinstruction
*****************************************************




merci pour l'aide



*****************************************************
de rien

@ +

Christophe
*****************************************************


--
à+twinley







Avatar
twinley
ouaiiiiis,

je viens de réinstaller la macro modifiée pour une feuille.
La suite demain pour le traitement de tous les modules de feuilles.

Oui je sais, je sais... mais patience, je ne comprend pas vite.

à+twinley

twinley wrote:
Bonsoir,

merci pour tes suggestions.
Juste au moment ou je baisse les bras...
J'ai essayé pas mal de chose dont & chr13 & et aussi , _
mais je sèche.
La var 'rechercher' est un string. Elle n'aime pas les lignes.
Je pars sur une autre alternative, tuer la macro, ce que je viens de
faire avec succés pour un module de feuille. Je vais faire une boucle
pour toutes les feuilles.
Il faut que je trouve comment réinstaller la sub modifiée dans son
intégralité depuis un fichier texte par exemple.

Bonne soirée

à+twinley

Christophe JEAN wrote:

Bonjour,

"twinley" a écrit dans le message de news:


Bonsoir,

Je ressors et reformule ma question qui a légèrement évoluée et qui
risque d'être enterrée ou noyée par le Beaujolais.

Avec la sub d'Excelabo qui modifie une partie de ligne de code.

http://www.excelabo.net/xl/macros.php#rechercheremplacer

Les manips fonctionnent bien si je modifie 1 ligne seulement avec
cette sub par ex :
Rechercher = "Par ex 5 ou 15 ou 130 "
par
Remplacer = "Par ex 5 ou 15 ou 130 ou 1230"

Mais cela se corse si je veux chercher avec une string qui contient
des retour de ligne.

chercher :

Case 3 ' e.g., 145 = 1:45
.Value = Left(.Value, 1) & ":" & Right(.Value, 2)

et que je veux le remplacer par

Case 3 ' e.g., 145 = 1:45
.Value = Left(.Value, 1) & ":" & Right(.Value, 2)
Case 4 ' e.g., 1245 = 12:45
.Value = Left(.Value, 2) & ":" & Right(.Value, 2)




*****************************************************

Et si tu essayais :
Case 3 ' e.g., 145 = 1:45
.Value = TimeSerial(Left(.Value, 1) , Right(.Value,
2),0)
Case 4 ' e.g., 1245 = 12:45
.Value = TimeSerialLeft(.Value, 2),Right(.Value, 2),0)

*****************************************************


Là, je ne compile pas, il y a un problème de retour à la ligne. Je ne
trouve pas la syntaxe.

J'ai essayé entre autre :
Rechercher = "Case 3 ' e.g., 145 = 1:45 _ .Value = Left(.Value,
1) & "":"" & Right(.Value, 2)"
Remplacer = "Case 3 ' e.g., 145 = 1:45 _ .Value = Left(.Value,
1) & "":"" & Right(.Value, 2) _ Case 4 ' e.g., 1245 = 12:45 _
.Value = Left(.Value, 2) & "":"" & Right(.Value, 2)"

Mais cela ne modifie pas, à cause des retour à la ligne et du " de
fin de string qui s'installe tout seul.

Si quelqu'un à une solution pour faire évoluer cette macro de
rechercheremplacer d'une ligne en macro rechercheremplacer de
plusieurs lignes ?



*****************************************************
Pour rappel, les retours de lignes se font par
espace suivi d'un underscore, exemple :

blablabla.blablabla.Méthode Machin1 := _ 'et retour de ligne
lasuitedelinstruction
*****************************************************




merci pour l'aide



*****************************************************
de rien

@ +

Christophe
*****************************************************


--
à+twinley