J'ai un problème pour crée une macro sur excel, une macro qui me faciliterai bien la tache.
Je vais essayer d'expliquer clairement la macro que je n'arrive pas à crée :
- Sur un classeur excel, dans une cellule, on tape la référence d'un produit (ex: 06612070)
-La, la macro commence, elle va automatiquement dans un autre classeur excel faire une recherche pour savoir ou se situe cette référence dans un tableau, va copier la cellule qui se trouve imédiatement à droite (la désignation de la référence)
-La macro retourne sur le 1er classeur pour coller se quel à copier dans un commentaire sur la cellule ou la référence à été écrit quelque seconde auparavant.
Je sais pas si j'ai été très clair, je vai essayer de mettre des photo commenter de mon problème.
En tout cas si vous avez compris et que vous pensez pouvoir m'aider, je vous remercie par avance.
xcxl, merci de répondre ausi rapidement, mais g rien compris a se que ta dis, les amcro assez simple jconnai, mais des ke sa devien compliquer jgalère, jpige pas, aide moi stp, jten serait très reconnaisan
g vraiment l'impression d'ête une quiche en informatique, g rien compris au lien ke tu ma envoyer, dsl, les boucles, le balyage des classeur, rien piger, dsl
Vous n’avez pas trouvé la réponse que vous recherchez ?
Private Sub Worksheet_Change(ByVal Target As Range)
'Utilisation de l'evenement Change dans la feuille ou va etre saisie la reference produit
Dim maBase As Workbook
Dim Feuille As Worksheet
Dim x As Integer
If Target.Address = "$A$1" Then 'la reference produit est saisie dans la cellule A1
'Définition du classeur et de la feuille servant de base de données
'(la procédure ne vérifie pas que le classeur est bien ouvert)
Set maBase = Workbooks("DeuxiemeClasseur.xls")
Set Feuille = maBase.Worksheets("Feuil1")
'les codes produits à rechercher sont dans la colonne A (A1:A...)
x = Application.Match(Target.Value, Feuille.Columns(1), 0)
If x <> 0 Then 'x <> si une occurence est trouvée ( x est l'index de la ligne source )
'Si le code produit est trouvé , le contenu de la colonne B pour cette meme ligne , va
's'inscrire dans le commentaire .
If Target.Comment Is Nothing Then 'vérification s'il existe deja un commentaire :
Target.AddComment Feuille.Cells(x, 2).Value 's'il n'existe pas , on crée le commentaire
Else
Target.Comment.Text Feuille.Cells(x, 2).Value 's'il existe , on modifie le commentaire existant
End If
End If
Steven tinkiete pas ya 2 mois je capter rien au macro et puis je me suis acheter un bouquin. Sa aide pas mal.
Bon sinon pour les boucles(le truc FOR...NEXT), en fait tu fais une qui verifie la cellulle puis tu dessen d'une cellule et tu recommence le test. Quand tarrive en bas de la colone "A" tu passe a la collone "B" et tu recommence.
Le code de michelxld, il definie les classeurs, il ouvre le bon et puis il utilise une commande qui va chercher la valeur dans la colonne, comme sa, pas besoin de boucle. Ta plus ka ladapter pour ton usage.
essaie d'inserer cette macro dans un module
les debuts de recherche i et j ainsi que les colonnes sont ici à titre
indicatif. à vous de definir le debut de ta base de données.
j'espere t'avoir aidé.
Sub chercher()
Dim F1 As Worksheet
Dim F2 As Worksheet
Set F1 = Workbooks("1er classeur").Sheets("Ta feuille")
Set F2 = Workbooks("2e classeur").Sheets("Feuile Ref")
i = 2 '(debut de la feuille à explorer")
Do While F1.Cells(i, 1) <> ""
truc = F1.Cells(i, 1) 'la valeur à chercher
j = 2 '(Debut de la feuille reference)
Do While F2.Cells(j, 1) <> ""
If truc = F2.Cells(j, 2) Then
F1.Cells(i, 1).AddComment F2.Cells(j, 3) 'le texte à ajouter
End If
i = j + 1
Loop
i = i + 1
Loop
End Sub
Humm! Houai! et bien j'espère que le nombre de lignes et de colonnes dans ton tableau Excel vont être limités parce que je te le dit tout net, deux boucles qui tourne sur deux classeurs Excel pour faire des comparaisons, ça va être long! Très long! Si tu à plusieurs centaines ou millier de ligne. Je rappel qu'Excel n'est pas réellement une application de base de données mais un tableur!<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
Pour ma part je te conseillerais d'utiliser à la place de ton deuxième classeur, une petite base de données (type Access éventuellement) et depuis ton classeur Excel, tu copie le commentaire que tu recherche grâce à des requêtes SQL, plus rapide et plus sûr
Je tient à tous de vous remercier pour les info que vous m'avez donner, jespère que les macro que vous m'avez montré von marché, et me sauvé de la galère que je supporte depuis un moment déja, mais jsui incapable de transférer l'un ou l'autre macro que vous m'avez montrer sur mon fichier, jsai pas coment rentré exactement les nom des cellules, de classeurs au bon endroit, sa fait des heure que je cherche, mais ji arrive pas, a chaque fois excel i me di ke sa marche pas, je vais voir si il est possible de posté mes 2 fichier excel, et comme sa vous pourré encore m'aider, jsui vraiment dsl de vous dérranger, vous êtes vraiment sympa de m'aider. dans quelque tps j'en connaitrai plus sur les macro, je vai avoir une formation den quelque tps, mais cette macro, jen ai vraiment besoin, et le tps me manque, merci à tous.