Modifier contenu cellule excel 2007

Fermé
Ludivine - 6 mars 2013 à 10:31
 Ludivine - 6 mars 2013 à 12:02
Bonjour à tous !

J'ai une petite question :)

J'ai un fichier avec en colonne D (sauf ligne 1) différentes information type D2 contient

NQ: Hp1987767225, ANOTHER ISSUE

La seule chose qui minterresse dans cette cellule et que je souhaite conserver en remplacement des autres éléments est la suite de caractères commencant par Hp suivi de 10 chiffres.

Auriez vous la gentillesse de m'indiquer comment remplacer le contenu de chaque ligne de colonne D par uniquement HP1234567891 (suite de chiffre variable en fonction des lignes mais toujours 10 chiffres).

Tout le reste est accessoire et ne doit pas être considéré comme figé en terme de contenu de cellule initiale.

D'avance merci beaucoup !!

7 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
6 mars 2013 à 11:47
Bonjour
si votre Hp se ballade dans la cellule, essayez ceci:

=STXT(A1;TROUVE("Hp";A1;1);12)

crdlmnt
1
scinarf Messages postés 1098 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 25 septembre 2014 252
6 mars 2013 à 11:05
Bonjour,

Alors sur la colonne E vous pouvez mettre la formule suivante =Gauche(D2;12)

**D2** pour la ligne E2 après il vous suffit de tirer la formule vers le bas

Cordialement
0
Bonjour et merci pour vos conseils !

Toutefois, dans l'exemple sus-cité, votre solution nous donne après application de votre formule :
NQ: Hp198776

Par ailleurs, comme indiqué, la suite de caractères qui m'interesse et qui commençant par Hp peut se trouver n'importe ou dans la cellule, sans aucune règle possible à appliquer.

En gros ce qu'il faudrait c'est une formule qui cherche "Hp" et ne garde que ça, suivi des 10 chiffres qui compose la suite de caractères.

J'ajoute qu'idéalement, si la formule n'arrive pas à détecter pour une ligne, de suite de caractère hp suivi de 10 chiffres, ça serait magnifique si un msg d'erreur avec la/les ligne(s) incriminée(s) apparaissait !
0
scinarf Messages postés 1098 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 25 septembre 2014 252
6 mars 2013 à 11:29
Etrange en effet, puisque la formule Gauche(Texte,nombre de caractère) prend les 12 premiers caractères en partant de la gauche...

Si le HP est toujours situé dans ces 12 premiers caractère logiquement il ne devrait pas y avoir de soucis.

Gauche("12365Hp78965,cshbch";12) = 12365Hp78965
dans la logique.

Maintenant si le HP peut être en dehors de ces 12 premiers caractères, la il faut réfléchir un peu. Et peut être qu'une simple formule ne convient pas forcement. Ou sinon une formule personnalisée.
Les autres caractères sont il toujours des lettres ?
Si oui, on peut faire un test pour vérifier que "HP" est disponible dans la cellule et après on peut extraire tous les chiffres via les fonctions VBA.

J'attend votre réponse avant de vous faire une formule qui fonctionnerait.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour et merci de votre intérêt !

Alors il n'y a pas de règle au niveau des informations qui sont présentes dans la colonne D:
HP1324657891 peut très bien hors des 12 premiers caractères de la cellule.

Il faut considérer que les autres caractères de la cellules peuvent etre tout et n'importe quoi (chiffres, lettres, caractères spéciaux, ponctuation...)

C'est la raison pour laquelle je soumettais que la macro recherche le texte "HP" et le report avec les 10 chiffres qui le suivent ! :)

Merci encore !
0
scinarf Messages postés 1098 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 25 septembre 2014 252
6 mars 2013 à 11:47
AH oki, je comprend mieux, donc les 10 chiffres qui intéressent se situent forcement après le HP ?

Alors si c'est ca on peut utiliser les formules excel pour le faire ce qui donne:

=STXT(D2;TROUVE("HP";D2);TROUVE("HP";D2)+11)

Trouve("HP";D2) renvoie la place du premier caractère dans la chaine

Par exemple Trouve("HP";jkknbHPbvbdhHGG) va renvoyer 6 (si je compte bien)

Ensuite STXT extrait une chaine de caractère à partir d'une autre

STXT(12365479;1;5) renvoie 12365 (si je compte bien) on prend le premier caractère jusqu'au 5ème.

Dans votre cas on prend le caractère ou HP apparait jusqu'au caractère +11 (car il y a le P)

Je sais pas si j'ai été clair mais ça devrait fonctionner. Sinon on trouvera autre chose.
0
Bonjour et merci à tous les deux, ça fonctionne parfaitement

:) :) :)

Belle journée à vous ;)
0