Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

recherceh une valeur dans une ligne et recopier la valeur dans une cellule

9 réponses
Avatar
sleg
Bonjour,

je m'explique ( enfin jevias essayer ;-) ).

voila j'ai un classeur excel avec 8 feuilles dans un feuille nomm=E9e
"data" j'ai dans ma colonne J l'une des valeurs suivantes :
ASSISTANCE CONSEILS
DDE DE SERVICE
DDE D'EXPLOITATION
INCIDENT
INCIDENT D'EXPLOITATION
DEMANDE

Le probleme est que sur certainne ligne cette valeur est contenue dans
une autre colonne de la meme ligne et j'aimerai par macro replacer
cette valeur en J.

en gros si dans J j'ai l'une de mes valeurs de references je ne fais
rien si je n'ai pas cette valeur je la cherche dans la ligne et je la
recopie en colonne J de la meme ligne.

merci de votre aide et bonne journ=E9e.


PS : pour info la liste est contenu dans une feuille de mon classeur
nomm=E9e "Ref" en A2 =E0 A7:
ASSISTANCE CONSEILS
DDE DE SERVICE
DDE D'EXPLOITATION
INCIDENT
INCIDENT D'EXPLOITATION
DEMANDE

9 réponses

Avatar
FFO
Salut à toi

Je te propose ce code :

For i = 0 To 5
Donnée = Split("ASSISTANCE CONSEILS/DDE DE SERVICE/DDE
D'EXPLOITATION/INCIDENT/INCIDENT D'EXPLOITATION/DEMANDE", "/")(i)
Trouvé = Cells.Find(What:=Donnée, After:=Range("A1"), LookIn:=xlValues,
LookAt _
:=xlWhole).Address
If Trouvé <> "" Then
TrouvéSuivante = Trouvé
If Range(Trouvé).Column <> 10 Then
Range("J" & Range(Trouvé).Row) = Range(Trouvé)
End If
For j = 1 To Range("A1").SpecialCells(xlLastCell).Row
TrouvéSuivante = Cells.FindNext(After:=Range(TrouvéSuivante)).Address
If TrouvéSuivante <> Trouvé Then
If Range(TrouvéSuivante).Column <> 10 Then
Range("J" & Range(TrouvéSuivante).Row) = Range(TrouvéSuivante)
Range(TrouvéSuivante) = ""
End If
Else
Range(Trouvé) = ""
Exit For
End If
Next
End If
Next

Celà devrait convenir
Dis moi !!!
Avatar
sleg
merci de ton aide j'ai coller le code comme ça

Sheets("data").Select
For i = 0 To 5
Donnée = Split("ASSISTANCE CONSEILS/DDE DE SERVICE/DDE D 'EXPLOITATION/
INCIDENT/INCIDENT D'EXPLOITATION/DEMANDE", "/")(i)
Trouvé = Cells.Find(What:=Donnée, After:=Range("A1"),
LookIn:=xlValues, LookAt:=xlWhole).Address
If Trouvé <> "" Then
TrouvéSuivante = Trouvé
If Range(Trouvé).Column <> 10 Then
Range("J" & Range(Trouvé).Row) = Range(Trouvé)
End If
For j = 1 To Range("A1").SpecialCells(xlLastCell).Row
TrouvéSuivante = Cells.FindNext(After:=Range
(TrouvéSuivante)).Address
If TrouvéSuivante <> Trouvé Then
If Range(TrouvéSuivante).Column <> 10 Then
Range("J" & Range(TrouvéSuivante).Row) = Range(TrouvéSuivante)
Range(TrouvéSuivante) = ""
End If
Else
Range(Trouvé) = ""
Exit For
End If
Next
End If
Next

et j'ai une erreur de type variable objet ou variable de bloc non
with non defini.

une idée ?

merci de ton aide
On 12 déc, 12:07, FFO wrote:
Salut à toi

Je te propose ce code :

For i = 0 To 5
Donnée = Split("ASSISTANCE CONSEILS/DDE DE SERVICE/DDE
D'EXPLOITATION/INCIDENT/INCIDENT D'EXPLOITATION/DEMANDE", "/")(i)
    Trouvé = Cells.Find(What:=Donnée, After:=Range("A1"), L ookIn:=xlValues,
LookAt _
        :=xlWhole).Address
    If Trouvé <> "" Then
    TrouvéSuivante = Trouvé
    If Range(Trouvé).Column <> 10 Then
    Range("J" & Range(Trouvé).Row) = Range(Trouvé)
    End If
    For j = 1 To Range("A1").SpecialCells(xlLastCell).Row
    TrouvéSuivante = Cells.FindNext(After:=Range(TrouvéSuivan te)).Address
    If TrouvéSuivante <> Trouvé Then
    If Range(TrouvéSuivante).Column <> 10 Then
    Range("J" & Range(TrouvéSuivante).Row) = Range(TrouvéSuivan te)
    Range(TrouvéSuivante) = ""
    End If
    Else
    Range(Trouvé) = ""
    Exit For
    End If
    Next
    End If
    Next

Celà devrait convenir
Dis moi !!!


Avatar
FFO
Rebonjour à toi

Effectivement j'ai oublié de traiter dans mon code le cas ou un élément de
recherche parmis ta liste était absent ce qui doit être la raison de ce Bug

Pour s'en affranchir il faut rajouter cette ligne :

On Error Resume Next

comme ceci :

Sheets("data").Select
For i = 0 To 5
Donnée = Split("ASSISTANCE CONSEILS/DDE DE SERVICE/DDE D 'EXPLOITATION/
INCIDENT/INCIDENT D'EXPLOITATION/DEMANDE", "/")(i)
On Error Resume Next
Trouvé = Cells.Find(What:=Donnée, After:=Range("A1"),
LookIn:=xlValues, LookAt:=xlWhole).Address
If Trouvé <> "" Then
TrouvéSuivante = Trouvé
If Range(Trouvé).Column <> 10 Then
Range("J" & Range(Trouvé).Row) = Range(Trouvé)
End If
For j = 1 To Range("A1").SpecialCells(xlLastCell).Row
TrouvéSuivante = Cells.FindNext(After:=Range
(TrouvéSuivante)).Address
If TrouvéSuivante <> Trouvé Then
If Range(TrouvéSuivante).Column <> 10 Then
Range("J" & Range(TrouvéSuivante).Row) = Range(TrouvéSuivante)
Range(TrouvéSuivante) = ""
End If
Else
Range(Trouvé) = ""
Exit For
End If
Next
End If
Next


Mille excuses

Maintenant ce Bug révèle qu'un des critères de recherche est absent de ta
feuille
Peut être est ce normal ou vérifier l'exact écriture du terme recherché
A toi de voir

Fais des essais et dis moi !!!!
Avatar
sleg
Re moi,

la c curieux lorsque je lance la macro cette derniere me supprime la
premiere cellule rencontrée ou il y a dde service et se termine sans
erreur ? mais ne va pas me cherche l'info pour les lignes sans
l'informaton " donnée" ?

une idée ?



On 12 déc, 13:59, FFO wrote:
Rebonjour à toi

Effectivement j'ai oublié de traiter dans mon code le cas ou un élé ment de
recherche parmis ta liste était absent ce qui doit être la raison de ce Bug

Pour s'en affranchir il faut rajouter cette ligne :

On Error Resume Next

comme ceci :

Sheets("data").Select
For i = 0 To 5
Donnée = Split("ASSISTANCE CONSEILS/DDE DE SERVICE/DDE D 'EXPLOITATIO N/
INCIDENT/INCIDENT D'EXPLOITATION/DEMANDE", "/")(i)
On Error Resume Next
Trouvé = Cells.Find(What:=Donnée, After:=Range("A1"),
LookIn:=xlValues, LookAt:=xlWhole).Address
If Trouvé <> "" Then
TrouvéSuivante = Trouvé
If Range(Trouvé).Column <> 10 Then
Range("J" & Range(Trouvé).Row) = Range(Trouvé)
End If
For j = 1 To Range("A1").SpecialCells(xlLastCell).Row
TrouvéSuivante = Cells.FindNext(After:=Range
(TrouvéSuivante)).Address
If TrouvéSuivante <> Trouvé Then
If Range(TrouvéSuivante).Column <> 10 Then
Range("J" & Range(TrouvéSuivante).Row) = Range(TrouvéSuivante)
Range(TrouvéSuivante) = ""
End If
Else
Range(Trouvé) = ""
Exit For
End If
Next
End If
Next

Mille excuses

Maintenant ce Bug révèle qu'un des critères de recherche est absent de ta
feuille
Peut être est ce normal ou vérifier l'exact écriture du terme reche rché
A toi de voir

Fais des essais et dis moi !!!!


Avatar
sleg
Voici le lien vers mon fichier

http://www.cijoint.fr/cjlink.php?file=cj200812/cijTa7FpRb.xls

merci encore


On 12 déc, 13:59, FFO wrote:
Rebonjour à toi

Effectivement j'ai oublié de traiter dans mon code le cas ou un élé ment de
recherche parmis ta liste était absent ce qui doit être la raison de ce Bug

Pour s'en affranchir il faut rajouter cette ligne :

On Error Resume Next

comme ceci :

Sheets("data").Select
For i = 0 To 5
Donnée = Split("ASSISTANCE CONSEILS/DDE DE SERVICE/DDE D 'EXPLOITATIO N/
INCIDENT/INCIDENT D'EXPLOITATION/DEMANDE", "/")(i)
On Error Resume Next
Trouvé = Cells.Find(What:=Donnée, After:=Range("A1"),
LookIn:=xlValues, LookAt:=xlWhole).Address
If Trouvé <> "" Then
TrouvéSuivante = Trouvé
If Range(Trouvé).Column <> 10 Then
Range("J" & Range(Trouvé).Row) = Range(Trouvé)
End If
For j = 1 To Range("A1").SpecialCells(xlLastCell).Row
TrouvéSuivante = Cells.FindNext(After:=Range
(TrouvéSuivante)).Address
If TrouvéSuivante <> Trouvé Then
If Range(TrouvéSuivante).Column <> 10 Then
Range("J" & Range(TrouvéSuivante).Row) = Range(TrouvéSuivante)
Range(TrouvéSuivante) = ""
End If
Else
Range(Trouvé) = ""
Exit For
End If
Next
End If
Next

Mille excuses

Maintenant ce Bug révèle qu'un des critères de recherche est absent de ta
feuille
Peut être est ce normal ou vérifier l'exact écriture du terme reche rché
A toi de voir

Fais des essais et dis moi !!!!


Avatar
FFO
Rebonjour à toi

Dans le code de la Macro le paramètre de recherche dans la variable Donnée
avait pour l'itème "DDE D'EXPLOITATION" : "DDE D' EXPLOITATION

Un espace en trop qui mettait à mal le résultat

J'ai passé aprés cette correction la Macro et j'ai bien obtenu en colonne J
tous les paramètres disséminés
Pour vérification j'ai vidé cette colonne et j'ai recherché chaque terme
dans l'ensemble de la feuille sans en trouvé un
Conclusion ils étaient bien tous ramener sur cette colonne

Qu'entends tu par :

"la c curieux lorsque je lance la macro cette derniere me supprime la
premiere cellule rencontrée ou il y a dde service et se termine sans
erreur ? mais ne va pas me cherche l'info pour les lignes sans
l'informaton " donnée" ? "

Peux tu préciser car ce n'est pas ce que j'obtiens

Sur ce lien ton fichier avec la petite correction concernant le critère "DDE
D'EXPLOITATION"

http://www.cijoint.fr/cjlink.php?file=cj200812/cijbovUx52.xls

Fais des essais et dis moi !!!!
Avatar
sleg
donc la je recuperer bien mes donnée mais toujours le meme probleme si
tu relance lamacro hsitoire tu vera que les premiere information de la
colonne J s'efface ?

merci de ton aide


On 12 déc, 16:50, FFO wrote:
Rebonjour à toi

Dans le code de la Macro le paramètre de recherche dans la variable Don née
avait pour l'itème "DDE D'EXPLOITATION" : "DDE D' EXPLOITATION

Un espace en trop qui mettait à mal le résultat

J'ai passé aprés cette correction la Macro et j'ai bien obtenu en col onne J
tous les paramètres disséminés
Pour vérification j'ai vidé cette colonne et j'ai recherché chaque terme
dans l'ensemble de la feuille sans en trouvé un
Conclusion ils étaient bien tous ramener sur cette colonne

Qu'entends tu par :

"la c curieux lorsque je lance la macro cette derniere me supprime la
premiere cellule rencontrée ou il y a dde service et se termine sans
erreur ? mais ne va pas me cherche l'info pour les lignes sans
l'informaton " donnée" ? "

Peux tu préciser car ce n'est pas ce que j'obtiens

Sur ce lien ton fichier avec la petite correction concernant le critère "DDE
D'EXPLOITATION"

http://www.cijoint.fr/cjlink.php?file=cj200812/cijbovUx52.xls

Fais des essais et dis moi !!!!


Avatar
sleg
bonsoir,

a premiere vue c'est la ligne Range(Trouvé) = "" en fi nde macro qui
posait le probleme

grand merci pourton aide si precieuse.

bon week-end.


On 12 déc, 17:03, sleg wrote:
donc la je recuperer bien mes donnée mais toujours le meme probleme si
tu relance lamacro hsitoire tu vera que les premiere information de la
colonne J s'efface ?

merci de ton aide

On 12 déc, 16:50, FFO wrote:



> Rebonjour à toi

> Dans le code de la Macro le paramètre de recherche dans la variable D onnée
> avait pour l'itème "DDE D'EXPLOITATION" : "DDE D' EXPLOITATION

> Un espace en trop qui mettait à mal le résultat

> J'ai passé aprés cette correction la Macro et j'ai bien obtenu en c olonne J
> tous les paramètres disséminés
> Pour vérification j'ai vidé cette colonne et j'ai recherché chaqu e terme
> dans l'ensemble de la feuille sans en trouvé un
> Conclusion ils étaient bien tous ramener sur cette colonne

> Qu'entends tu par :

> "la c curieux lorsque je lance la macro cette derniere me supprime la
> premiere cellule rencontrée ou il y a dde service et se termine sans
> erreur ? mais ne va pas me cherche l'info pour les lignes sans
> l'informaton " donnée" ? "

> Peux tu préciser car ce n'est pas ce que j'obtiens

> Sur ce lien ton fichier avec la petite correction concernant le critè re "DDE
> D'EXPLOITATION"

>http://www.cijoint.fr/cjlink.php?file=cj200812/cijbovUx52.xls

> Fais des essais et dis moi !!!!- Masquer le texte des messages préc édents -

- Afficher le texte des messages précédents -


Avatar
FFO
Rebonjour

Effectivement je demandais au code de vider la 1° cellule trouvée puisque
rapportée en j
Mais je n'ai pas pris en considération le fait qu'elle puisse être aussi en J
J'ai donc apporté une correction
J'en est profité pour augmenter la boucle qui recherche le critère dans les
cellules suivantes car si elles sont particulièrement nombreuses sa limite
empêchait d'aller jusqu'à la derniere et donc rendait imparfait le résultat
J'ai donc mis une valeur qui permet de palier à toute éventualité

Sur ce lien ton document corrigé ainsi

http://www.cijoint.fr/cjlink.php?file=cj200812/cij77RcVD2.xls

Fais des essais et dis moi !!!!