Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/09/2011, 16h14   #1
Membre du Club
 
Avatar de midge
 
Homme Marc
Inscription : juillet 2010
Messages : 45
Détails du profil
Informations personnelles :
Nom : Homme Marc
Localisation : France

Informations forums :
Inscription : juillet 2010
Messages : 45
Points : 54
Points : 54
Par défaut formule de MFC inopérante

bonjour
J'ai le souci suivant : sur une feuille j'ai une colonne composée de matricules et des noms prénoms qui y sont attachés. L'objectif est avec une MFC de "zapper" les matricules + espaces et ne garder que les noms et prénoms.
Exemple : AA14334 - DUPONT CHARLES
Lorsque je sélectionne la colonne et applique la formule suivante, rien ne se passe, une idée du problème ? Merci pour vos retours.
la formule est :
Code :
=DROITE("E:E";NBCAR("E:E") - 10)
__________________
___________________________________________
Cdlmt

Etre dans le vent ... une ambition de feuille morte.
G.THIBON
midge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 16h36   #2
Membre éprouvé
 
Avatar de Runsh63
 
Homme Duc
Nihiliste
Inscription : mars 2011
Messages : 395
Détails du profil
Informations personnelles :
Nom : Homme Duc
Âge : 31
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Nihiliste
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 395
Points : 419
Points : 419
Bonjour midge,

En partant de l'hypothèse où ta première cellule à traiter se trouve en A1, alors ta formule est parfaite :

Code :
=DROITE(A1;NBCAR(A1)-10)
Duplique sur la longueur de ta colonne et le tour est joué
__________________
Cordialement,

Runsh
Runsh63 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/09/2011, 16h41   #3
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Bonjour,
Je n'ai pas compris si tu veux faire une MFC et sinon, pourquoi. Mets sur la première ligne :

Code :
=DROITE("E1";NBCAR("E1") - 10)
et recopie vers le bas
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/09/2011, 12h40   #4
Membre du Club
 
Avatar de midge
 
Homme Marc
Inscription : juillet 2010
Messages : 45
Détails du profil
Informations personnelles :
Nom : Homme Marc
Localisation : France

Informations forums :
Inscription : juillet 2010
Messages : 45
Points : 54
Points : 54
Bonjour,
Merci à vous deux pour vos retours
@Runsh63 : je teste et je reviens si nécessaire thanks
@Daniel.C : de AA14334 - DUPONT CHARLES je veux arriver à
DUPONT CHARLES colorié en jaune
Où ai-je mal compris ta question ? A force de réfléchir dans tous les
sens quelquefois les questions les plus simples ne font pas "tilt"
merci en tous les cas
__________________
___________________________________________
Cdlmt

Etre dans le vent ... une ambition de feuille morte.
G.THIBON
midge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2011, 13h06   #5
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Tu peux y arriver en changeant la police du matricule pour le rendre invisible. Qu'est-ce que tu veux mettre en jaune, la police ou le fond de cellule ?
Ou est-ce que tu veux supprimer le matricule ?
Pour mettre la police du matricule en blanc :


Code :
1
2
3
4
5
6
7
8
Sub test1()
Dim c As Range
With Sheets("Feuil2")
    For Each c In .Range(.[E1], .Cells(.Rows.Count, 5).End(xlUp))
        c.Characters(1, InStr(1, c.Value, "-")).Font.Color = vbWhite
    Next c
End With
End Sub
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/09/2011, 17h42   #6
Membre du Club
 
Avatar de midge
 
Homme Marc
Inscription : juillet 2010
Messages : 45
Détails du profil
Informations personnelles :
Nom : Homme Marc
Localisation : France

Informations forums :
Inscription : juillet 2010
Messages : 45
Points : 54
Points : 54
Bonjour Daniel C

C'est la police en jaune et le matricule supprimé.
Derrière j'aimerai faire des tris voire regrouper certains noms pour les déplacer et autres manips ... si le matricule est invisible (et donc non supprimé en réel) est-ce que cela sera gênant pour ce que j'envisage ?
En tous les cas il ne me serait pas venu à l'esprit de rendre une police invisible ... je teste dès que j'ai accès au fichier (au boulot) !
Merci
__________________
___________________________________________
Cdlmt

Etre dans le vent ... une ambition de feuille morte.
G.THIBON
midge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2011, 18h04   #7
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Pour avoir le matricule supprimé et le texte en jaune :

Code :
1
2
3
4
5
6
7
8
9
Sub test2()
Dim c As Range
With Sheets("Feuil2")
For Each c In .Range(.[E1], .Cells(.Rows.Count, 5).End(xlUp))
    c.Value = Mid(c.Value, InStr(1, c.Value, "-") + 2, 9 ^ 9)
    c.Font.Color = vbYellow
Next c
End With
End Sub
Sinon pour garder le matricule (police blanche et le reste du texte en jaune :

Code :
1
2
3
4
5
6
7
8
9
Sub test1()
Dim c As Range
With Sheets("Feuil2")
For Each c In .Range(.[E1], .Cells(.Rows.Count, 5).End(xlUp))
    c.Font.Color = vbYellow
    c.Characters(1, InStr(1, c.Value, "-")).Font.Color = vbWhite
Next c
End With
End Sub
Si le matricule est toujours présent dans la cellule, tu peux te servir du contenu de celle-ci comme tu l'entends; la valeur de la cellule est inchangée.
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/09/2011, 17h16   #8
Membre du Club
 
Avatar de midge
 
Homme Marc
Inscription : juillet 2010
Messages : 45
Détails du profil
Informations personnelles :
Nom : Homme Marc
Localisation : France

Informations forums :
Inscription : juillet 2010
Messages : 45
Points : 54
Points : 54
Bonjour à tous
Et plus particulièrement à Daniel C. ... ta solution par macro (matricule supprimé et texte en jaune) fonctionne très bien ! Merci
La police du matricule en blanc marche impec également
Il me reste à comprendre ces macros ..
En revanche, malgré une relecture du tuto sur les MFC, il ne se passe désespérement rien pour ma formule, ou alors j'ai un big problème de neurones ... je ne sais pas si je peux joindre un fichier exemple ?
__________________
___________________________________________
Cdlmt

Etre dans le vent ... une ambition de feuille morte.
G.THIBON
midge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2011, 18h52   #9
Membre émérite
 
Conseil + Formation
Inscription : février 2010
Messages : 584
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Conseil + Formation

Informations forums :
Inscription : février 2010
Messages : 584
Points : 886
Points : 886
Bonjour

Une formule de MFC : renvoie vrai ou faux et si vrai applique une couleur ou autre mise en forme.

Là, ta formule (à corriger) renvoie le contenu de la cellule sans les 10 premiers caractères : c'est ni vrai ni faux... donc il ne se passe rien.

Tu peux aussi ajouter une colonne contenant seulement la partie nom-prenom par formule ou découper avec données Convertir...
78chris est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/09/2011, 18h56   #10
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Ta formule pose plusieurs problèmes. Il ne faut pas mettre les références de cellule entre guillemets. Ensuite, une mise en forme conditionnelle s'applique uniquement sur la valeur de la cellule, pas sur une partie d'entre elle. La formule :
Code :
DROITE(E1;NBCAR(E1) - 10)
renvoie la partie droite de la cellule alors qu'une formule destinée au format conditionnel doit renvoyer VRAI ou FAUX (ou, ce qui est équivalent, 1 ou 0). Dis-moi ce que tu ne comprends pas dans le code, je te le commenterai.
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/09/2011, 12h47   #11
Membre du Club
 
Avatar de midge
 
Homme Marc
Inscription : juillet 2010
Messages : 45
Détails du profil
Informations personnelles :
Nom : Homme Marc
Localisation : France

Informations forums :
Inscription : juillet 2010
Messages : 45
Points : 54
Points : 54
Bonjour

@ 78chris : merci pour tes explications, je n'y étais pas du tout, j'essaierai la colonne supplémentaire ...

@ Daniel C. : je ne sais pas pourquoi j'étais parti sur une partie de la cellule mais a posteriori cela semble évident ...
la ligne que je ne saisis pas du tout c'est la suivante
Code :
c.Value = Mid(c.Value, InStr(1, c.Value, "-") + 2, 9 ^ 9)
je n'ai pas encore eu l'occasion de consulter l'aide sur "Mid", ce qui me semble curieux c'est le "9^9" ... merci pour ton aide
__________________
___________________________________________
Cdlmt

Etre dans le vent ... une ambition de feuille morte.
G.THIBON
midge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 14h05   #12
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
@ midge :

Mid est l’équivalent anglais de STXT. 9^9 ou 9 puissance 9 est utilisé pour une très grande valeur (plus de 387 millions). Je l'utilise ici pour remplacer la longueur inconnue d'un string. Instr renvoie la position du tiret dans la cellule. En conclusion, la formule revoie la sous-chaîne située après le tiret.
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/10/2011, 17h42   #13
Membre du Club
 
Avatar de midge
 
Homme Marc
Inscription : juillet 2010
Messages : 45
Détails du profil
Informations personnelles :
Nom : Homme Marc
Localisation : France

Informations forums :
Inscription : juillet 2010
Messages : 45
Points : 54
Points : 54
merci pour les infos
__________________
___________________________________________
Cdlmt

Etre dans le vent ... une ambition de feuille morte.
G.THIBON
midge est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h00.


 
 
 
 
Partenaires

Hébergement Web