OVH Cloud OVH Cloud

Recherch et remplace

12 réponses
Avatar
JP
Bonjour,
j'ai un tableau sur lequel je doit changer tous les libellés "xxxxx - yyyy
-1223" en "yyyy - 1223"
Mon problème est que le seul point commun de tous les libellés est " - "

Est-il possible de créer une macro qui supprimerait tous les libellés du 1er
caractères jusqu'au blanc après le premier tiret ?

Merci davance

JP

10 réponses

1 2
Avatar
mbfac
"JP" a écrit dans le message de news:

Bonjour,
j'ai un tableau sur lequel je doit changer tous les libellés "xxxxx - yyyy
-1223" en "yyyy - 1223"
Mon problème est que le seul point commun de tous les libellés est " - "

Est-il possible de créer une macro qui supprimerait tous les libellés du
1er
caractères jusqu'au blanc après le premier tiret ?

oui



for i=1 to 65535
for j =1 to 255
if instr(1,cells(i,j)." -",vbTextCompare)>1 then
Chaine= Split(a, "" - "", , vbTextCompare)
cells(i,j).value= chaine(1)& " - "& chaine(2)
end if
next
next

Cordialement

Michel BERTRAND

Avatar
JP
Bonjour Michel,

Merci pour ta reponse mais sa ne fonctionne pas
la macro s'arrete sur cette ligne:

If InStr(1, Cells(i, j)." -", vbTextCompare) > 1 Then

je suis trop novice poiu dire ce qui ne va pas

Cordialement
JP



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

Bonjour,
j'ai un tableau sur lequel je doit changer tous les libellés "xxxxx - yyyy
-1223" en "yyyy - 1223"
Mon problème est que le seul point commun de tous les libellés est " - "

Est-il possible de créer une macro qui supprimerait tous les libellés du
1er
caractères jusqu'au blanc après le premier tiret ?

oui



for i=1 to 65535
for j =1 to 255
if instr(1,cells(i,j)." -",vbTextCompare)>1 then
Chaine= Split(a, "" - "", , vbTextCompare)
cells(i,j).value= chaine(1)& " - "& chaine(2)
end if
next
next

Cordialement

Michel BERTRAND






Avatar
Tisane
Bonjour JP,

j'ai un tableau sur lequel je doit changer tous les libellés "xxxxx - yyyy
-1223" en "yyyy - 1223"
Mon problème est que le seul point commun de tous les libellés est " - "
Est-il possible de créer une macro qui supprimerait tous les libellés du
1er
caractères jusqu'au blanc après le premier tiret ?


Pourquoi une macro si c'est une utilisation ponctuelle ?
Essaie ceci :
- menu Edition | Remplacer
- dans le champ "Rechercher", tape "????? - " (sans les guillemets)
- laisse le champ "Remplacer par" vide
Chaque ? correspond à un caractère quelconque.
Si le nombre de caractères est variable avant le 1er -, tape "* - ".
L'astérisque remplace n caractères quelconques.

--
Tisane

Avatar
JP
merci Tisane

j''y avais pesé mais vu que ma chaine de caractaires comporte 2 tirets cad

"xxxx - yyyyy - 1234"
quand j'applique ta solution iln e me reste que "1234" au lieu de "yyyyy -
1234"

Cordialement
JP


Bonjour JP,

j'ai un tableau sur lequel je doit changer tous les libellés "xxxxx - yyyy
-1223" en "yyyy - 1223"
Mon problème est que le seul point commun de tous les libellés est " - "
Est-il possible de créer une macro qui supprimerait tous les libellés du
1er
caractères jusqu'au blanc après le premier tiret ?


Pourquoi une macro si c'est une utilisation ponctuelle ?
Essaie ceci :
- menu Edition | Remplacer
- dans le champ "Rechercher", tape "????? - " (sans les guillemets)
- laisse le champ "Remplacer par" vide
Chaque ? correspond à un caractère quelconque.
Si le nombre de caractères est variable avant le 1er -, tape "* - ".
L'astérisque remplace n caractères quelconques.

--
Tisane





Avatar
JpPradier
Bonjour JP

Remplace le point par une virgule. Tu aurais aussi interet à adapter le nombre de ligne et
de colonne à balayer, sinon tu auras le temps d'aller boire un café voire plusieurs en
attendant.

j-p
Avatar
isabelle
bonjour JP,

une formule :

=DROITE(A1;NBCAR(A1)-TROUVE("-";A1)-1)

ou bien une macro :

Sub Macro1()
For Each c In Range("A1:A10")
Set zz = Cells(c.Row, 1)
zz.Value = Right(zz, Len(zz) - InStr(zz, "-") - 1)
Next
End Sub

isabelle

Bonjour,
j'ai un tableau sur lequel je doit changer tous les libellés "xxxxx - yyyy
-1223" en "yyyy - 1223"
Mon problème est que le seul point commun de tous les libellés est " - "

Est-il possible de créer une macro qui supprimerait tous les libellés du 1er
caractères jusqu'au blanc après le premier tiret ?

Merci davance

JP


Avatar
mbfac
bonjour

Faute de frappe :-(
il faut enlever le point derriere cells(i,j)

ou mettre cells(i,j).value

Cordialement

Michel BERTRAND
"JpPradier" a écrit dans le message
de news:
Bonjour JP

Remplace le point par une virgule. Tu aurais aussi interet à adapter le
nombre de ligne et
de colonne à balayer, sinon tu auras le temps d'aller boire un café voire
plusieurs en
attendant.

j-p



Avatar
JP
Merci
pour ta reponse mais sa ne fonctionne pas
la macro s'arrete sur la ligne suivante
et je suis toujour aussi incapable de voir le probleme
JP


Bonjour JP

Remplace le point par une virgule. Tu aurais aussi interet à adapter le nombre de ligne et
de colonne à balayer, sinon tu auras le temps d'aller boire un café voire plusieurs en
attendant.

j-p




Avatar
Tisane
j''y avais pesé mais vu que ma chaine de caractaires comporte 2 tirets cad
"xxxx - yyyyy - 1234"
quand j'applique ta solution iln e me reste que "1234" au lieu de "yyyyy -
1234"


Au temps pour moi (confusion avec Access où on peut préciser en début de
champ).
La formule d'Isabelle est parfaite.

--
Tisane


j'ai un tableau sur lequel je doit changer tous les libellés "xxxxx -
yyyy
-1223" en "yyyy - 1223"
Mon problème est que le seul point commun de tous les libellés est " -
"
Est-il possible de créer une macro qui supprimerait tous les libellés
du
1er
caractères jusqu'au blanc après le premier tiret ?


Pourquoi une macro si c'est une utilisation ponctuelle ?
Essaie ceci :
- menu Edition | Remplacer
- dans le champ "Rechercher", tape "????? - " (sans les guillemets)
- laisse le champ "Remplacer par" vide
Chaque ? correspond à un caractère quelconque.
Si le nombre de caractères est variable avant le 1er -, tape "* - ".
L'astérisque remplace n caractères quelconques.





Avatar
AV
Sub zzz()
For Each c In Selection
c.Value = Mid(c, Application.Find("-", c) + 2, 9 ^ 9)
Next
End Sub

AV
1 2