BAUHAUS44
Messages postés50Date d'inscriptionsamedi 19 août 2006StatutMembreDernière intervention17 juillet 2010
-
3 sept. 2006 à 22:17
BAUHAUS44
Messages postés50Date d'inscriptionsamedi 19 août 2006StatutMembreDernière intervention17 juillet 2010
-
4 sept. 2006 à 16:14
Bonjour, je travaille sur un ficher excel à partir duquel je fais une recherche automatique d'une valeur "X" dans la colonne A et lorsque cette valeur "X" est trouvée je souhaiterais qu'apparaisse le commentaire "OK" dans la colonne E de cette même ligne. J'ai beau cherché mais je ne trouve pas. Quelqu'un aurait une idée de la syntaxe pour mettre le commentaire "OK" dans la colonne F de la ligne contenant la valeur attendue ? Merci d'avance à ceux qui pourront m'aider
A voir également:
Recherche d'une valeur dans une colonne et ajout d'un commentaire dans la colonn
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 4 sept. 2006 à 14:41
Je reformule donc :
Ta Feuil4 est donc en quelque sorte un "moteur de recherche" : tu saisies une valeur en A2 et ça va chercher dans la Feuil2 toutes les cellules contenant cette valeur, et dans la colonne C, tu mets le contenu de la cellule E2.
Première méthode : Tout se fait en formules Excel très simplement.
Tu gardes tes cellules comme elles sont.
Dans ta feuil4, tu sélectionnes A2:E2 et tu fais, Menu\Insertion\Nom ..; je lui ai donné le nom "Test"
Ensuite, sur ta feuil2, en C2, tu mets la formule suivante :
SI(ESTERREUR(RECHERCHEV(A2;Test;5;FAUX))FAUX;RECHERCHEV(A2;Test;5;FAUX);"")
Et tu copies cette ormule jusqu'à ta cellule A97.
Voilà, c'est terminé.
A chaque fois tu vas aller modifier la cellule A2 de ta feuil4, si cette valeur existe dans la colonne A de ta Feuil2, la valeur de E2 de la Feuil4 (vous me suivez encore ? ^^) sera affichée, autrement, la cellule sera vide.
Rien de plus à faire, mise à jour dynamique, etc ...(si c'est pour faire de la mise à jour derrière, un simple copier/coller valeur peut par ex. suffire, pas besoin de s'embêter à coder)
Deuxième méthode : Avec une macro (personnellement, pour faire ce que je crois que tu tentes de faire, je n'utilises pas la méthode find)
Tu crées un bouton et tu colles ce bout de code à l'intérieur.
Dim i As Integer
'Boucle passer sur toutes les lignes de A2 à A97.
For i = 2 To 97 Step 1
If Worksheets("Feuil2").Cells(i, 1).Value = Worksheets("Feuil4").Range("A2").Value Then
Worksheets("Feuil2").Cells(i, 4).Value = Worksheets("Feuil4").Range("E2").Value
End If
Next i
Voilà, si je suis encore à côté, je pars en vacances !!!
Molenn
P.S. : Si on pouvait me dire comment je peux mettre des balises pour afficher le bout de code avec les couleurs (ça existe je crois. Ne me dites pas que vous vous cassez à mettre du vert sur les lignes d'info, les IF/End If en bleu, etc ... Rassurez moi ! )
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 4 sept. 2006 à 09:33
Heeeu, je vais peut être dire une bêtise, mais ne serait-ce pas tout simplement une formule avec une condition logique ?
Dans ta colonne E :
SI(A1"Toto";"OK";"")
Voili, voilou.
Molenn
P.S. : Je suis étonné que Mortalino ne m'ait pas invoqué là-dessus. Tel Merlin, j'aurai pu étaler (et m'étaler ) ma science des formules
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 4 sept. 2006 à 09:46
Salut Molenn,
bah disons que j'imagine que sa cellule de la colonne F contient des données, avec ta fonction, "OK" se mettra dans cette cellule (et donc efface les données si la cellule en contient), alors qu'il le veut en commentaire !
++
Vous n’avez pas trouvé la réponse que vous recherchez ?
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 4 sept. 2006 à 10:06
Ah ? Je ne l'avais pas compris comme ça moi :
"Quelqu'un aurait une idée de la syntaxe pour mettre le commentaire "OK" dans la colonne F de la ligne contenant la valeur attendue ?"
Je veux juste que la colonne F affiche "ok" dans la ligne où je trouve la valeur donnée. Donc la formule fait amplement l'affaire.
Mais à lui de dire.
BAUHAUS44
Messages postés50Date d'inscriptionsamedi 19 août 2006StatutMembreDernière intervention17 juillet 2010 4 sept. 2006 à 11:26
Bonjour, j'ai bien reçu vos commentaires et je vous en remmercie mais maintenant mon problème est le suivant : je sais que la programmation qui suit fonctionne maintenant à la place de "Font.ColorIndex = 0" j'aimerais coller le texte préalablement copié mais je n'y arrive pas. Avez-vous une solution ? Merci d'avance.
Sheets("Feuil4").Select
If Range("A2").Value <> "" Then
Range("E2").Select
Selection.Copy
With Sheets("Feuil1").Range("A2:A97")
Set c = .Find(Sheets("Feuil4").Range("A2").Value, LookIn:=xlValues)
c.Offset(0, 2).Font.ColorIndex = 3
End With
End If
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 4 sept. 2006 à 13:20
J'ai rien compris à ton bout de code ^^
Qu'est-ce que tu veux obtenir ? Tu veux mettre en couleur un mot que tu as trouvé dans ta colonne ?
Je reprends :
Si ta cellule A2 n'est pas vide alors
Sélection de E2 et copie le contenu (au passage, pour réduire ta formule, tu peux écrire : Range("E2").copy
Cherche dans Feuil1, plage A2:A97, la valeur copiée en A2
Change la couleur de ce qui a été trouvé.
Ce que tu veux faire :
Coller le texte copié au préalable (donc le contenu de E2) dans la cellule où tu as trouvé le mot ?
Dans ce cas là, il ne faut pas fonctionner avec la méthode rechercher, mais avec la méthode remplacer (qui est la même, mais les options diffèrent).
Ce qui donnerait quelque chose comme :
Pris à partir de l'enregistreur de macro, à toit d'adapter à ton cas.
Pour ton code pour changer la couleur, je ne sais pas si tu l'utilises ou si c'était pour tester mais, juste pour savoir, tu sais que tu obtiens la même chose sans taper une seule ligne de code ? Ca s'appelle une mise en forme conditionnelle.
BAUHAUS44
Messages postés50Date d'inscriptionsamedi 19 août 2006StatutMembreDernière intervention17 juillet 2010 4 sept. 2006 à 13:47
Je reprends à mon tour mes explications, elles ne sont forcément clairs. Si la cellule A2 de ma Feuil4 n'est pas vide (elle contient par exemple la valeur 100), alors je selection E2 de la même feuille et je la copie. Ensuite, Je vais chercher dans la Feuil2 colonne A (de A2 à A97 plus exactement) la valeur 100 et lorsque je la trouve, je colle dans la colonne C de la même ligne (contenant la valeur 100) ce qui été copié en E2 de la Feuil4. Je travaille actuellement à partir de la syntaxe code couleur car je sais qu'elle fonctionne. C'est à dire que si la cellule A2 de ma Feuil4 n'est pas vide (elle contient par exemple la valeur 100), ensuite, Je vais chercher dans la Feuil2 colonne A (de A2 à A97 plus exactement) la valeur 100 et lorsque je la trouve, je lui demande de mettre le contenu de la colonne C de la même ligne en rouge par exemple et ça fonctionne. Maintenant j'aimerais faire la même chose avec un copier/coller d'une cellule à une autre. Merci d'avance pour le coups de main. BAUHAUS44
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 4 sept. 2006 à 14:48
Salut Molenn,
Pour le coup de la couleur, tu ne peux pas le faire avec des formules Excel
Soit t"as pas beaucoup de couleur à mettre, bah fait le à la main, soit tu prends une source coloration syntaxique, que tu modifies au besoin (j"en ferai une bientôt)
exemple (juste pour te faire un peu baver) :
<small>
Coloration syntaxique automatique </small>
Private Declare Function GetWindowLongA Lib "user32" _
ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLongA Lib "user32" _
ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Declare Function FindWindowA Lib "user32" _
ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Sub cboMois_Change()
Dim NumeroChoix As Byte, NumeroFeuille As Byte
BAUHAUS44
Messages postés50Date d'inscriptionsamedi 19 août 2006StatutMembreDernière intervention17 juillet 2010 4 sept. 2006 à 15:25
Merci pour ton aide Molenn mais désolé, j'ai encore une dernière question. Comment dois-je faire pour créer un bouton, je n'en ai jamais utilisé en programmation ? Ebcore merci pour ton aide.
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 4 sept. 2006 à 15:49
Hop là : Répondu par MP
@Mortalino : je te hais !! Il n'y a rien que je ne puisse faire en formules Excel, mais là, j'ai pas envie chercehr, c'est tout. Tant pis, je continuerai à écrire en noir, Na !
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 4 sept. 2006 à 16:09
lol ! Tiens, essaie cette source, tu as juste les constantes de couleurs à modifier (c'est celle-là que j'utilise pour le moment).
Là pour le moment je fais mon jardin (on s'occupe comme on peut) mais après je commencerai cette source coloration syntaxique (plusieurs idées dans la tête qui me titillent depuis un moment)
Amuse toi bien.
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--