Bonjour
J’aimerai mettre les prix de mon fichier " prix " ( Colonne C - D - E - F ) sur mon fichier "Reference ".
En sachant qu’il faudrait que les prix soit uniquement sur les lignes en jaunes
Comment faire - car quand je filtre en mettant uniquement les lignes jaunes et que je copie - colle cela ne veut pas me le faire car il y a des lignes entre chaque couleur jaune
Prix.xlsx (10,2 Ko) Reference.xlsx (73,7 Ko)
merci d’avance pour votre aide
Bonsoir
Si l’ordre des données n’est pas impérativement à respecter tu fais un tri de toutes tes données par la colonne K qui ramène toutes tes lignes jaunes ensembles en tête (seules à avoir une données dans cette colonne)
Reste à rapporter aisément les prix sur toutes les lignes jaunes en tête regroupées puis à retrier selon ta convenance
Si l’ordre initial est important la solution dans cet esprit consiste avant le tri par la colonne K de remplir la colonne L qui est vide de chiffres incrémentés pour cela il suffit de mettre le chiffre 1 dans la première cellule et d’opérer dessus un cliquer-glisser si l’incrémentation ne s’opère pas cliquer-glisser en maintenant la touche ctr enfoncé et ce jusqu’à la dernière ligne (opération très rapide)
Puis refaire toute la manipulation précédent une fois les prix intégrés dans les lignes jaunes refaire un tri par la colonne L en ordre croissant et de retrouver l’ordre initial
Reste juste à vider la colonne L ou la supprimer au choix
Cela devrait le faire
Dis moi
Bonjour,
Les deux classeurs doivent être dans le même dossier
Ouvrir le classeur « Référence » et cliquer sur le bouton
Le reste se fait tout seul avec une petite macro
Je ne joint que le fichier Référence.xslm, le classeur Prix étant le même que celui fourni
Reference.xlsm (88,5 Ko)
Merci Mimi
mais je ne comprend pas - faut que je mette dans le même dossier : donc une feuille le dossier référence et en feuille 2 le dossier prix ?
Re,
Non
Un dossier ou tu places ses deux classeurs EXCEL (voire même d’autres)
mais il faut que les deux classeurs soient dans le même dossier pour que le chemin de l’ouverture du classeur PRIX s’ouvre automatiquement
OK
le soucis c’est que ca me met :
Erreur d’execution ‹ 10004 › :
Désole … Nous ne trouvons pas C:\User\barry\Downloads\Prix.xlx
Peut etre l’avez vous déplacé, renommé ou supprimé ?
Re
Dans le dossier
C:\User\barry\Downloads
tu dois mettre les fichiers
Prix.xlsx
Reference.xlsm
en mettant le fichier prix en feuille 2 de mon fichier Reference ca ne serait pas plus simple ?
Car je n’arrive pas avec la macro que tu m’a faite - trop compliqué pour moi
Re
Comment se nomme les onglets de tes classeurs
s’il se nomment pas « Feuil1 », normal que cela ne fonctionne pas
Voilà la macro avec les commentaires sur les lignes pour mieux la comprendre
Option Explicit
Sub Test()
'Déclarations des variables
Dim WB1 As Workbook, WB2 As Workbook
Dim ws1 As Worksheet, ws2 As Worksheet
Dim chemin As String, fichier As String
Dim j%, i%, L%, Dl%
'Masquer le changement d'écran - rafraichissement d'écran
Application.ScreenUpdating = False
'Initialisation des variables
Set WB1 = ThisWorkbook 'C'est le classeur ouvret - Ici le classeur Reference
Set ws1 = WB1.Worksheets("Feuil1") 'Entre les guillemets, c'est le nom de la feuille ou onglet du classeur Reference
Dl = ws1.Range("A" & Rows.Count).End(xlUp).Row ' Dl = à la dernière cellule remplie de la colonne A de Reference
chemin = ThisWorkbook.Path & "\" 'C'est le chemin ou se trouve le classeur Prix, donc le même chemin que Reference
fichier = "Prix.xlsx" 'Nom du fichier à ouvrir
Set WB2 = Workbooks.Open(chemin & fichier) 'On ouvre le classeur suivant le chemin et son nom de fichier
Set ws2 = WB2.Worksheets("Feuil1") 'Entre les guillemets, c'est le nom de la feuille ou onglet du classeur Prix
j = ws2.Range("A" & Rows.Count).End(xlUp).Row 'j = à la dernière cellule remplie de la colonne A de Prix
For i = 2 To j 'boucle sur le classeur Prix de la ligne 2 à la ligne j
For L = 2 To Dl 'boucle sur le classeur Reference de la ligne 2 à la ligne Dl
If ws1.Cells(L, 1).Text = ws2.Cells(i, 1).Value Then 'Si les 2 valeurs des 2 lignes sont identiques alors
ws1.Cells(L, 3).Value = ws2.Cells(i, 3).Value 'Je copie et colle les données de la colonne C suivant sa ligne
ws1.Cells(L, 4).Value = ws2.Cells(i, 4).Value 'Je copie et colle les données de la colonne D suivant sa ligne
ws1.Cells(L, 5).Value = ws2.Cells(i, 5).Value 'Je copie et colle les données de la colonne E suivant sa ligne
ws1.Cells(L, 6).Value = ws2.Cells(i, 6).Value 'Je copie et colle les données de la colonne F suivant sa ligne
Exit For 'je quitte la boucle L
End If
Next L
Next i
WB1.Save 'Je sauve le classeur Reference
WB2.Close savechanges:=True 'Je sauve le classeur Prix et le ferme
End Sub
Carters d huile - Test Prix.xlsx (15,4 Ko)
Merci
et si je te met le dossier en un
ca ne serait pas plus simple, car je doit faire cette manip sur presque 200 dossiers avec la ligne a toute identique
Désolé de te déranger - est-ce que c’est possible de t’envoyer mon fichier complet de l’exemple envoyé car je n’arrive pas à le faire - le soucis c’est que le fichier est trop lourd pour l’envoyer par ici
Re,
C’est sur que si avais précisé que le fichier était important (+ de 37000 lignes), il fallait si mettre d’une autre façon
la macro n’est plus là même, et tu n’as pas précisé.
Je regarde cela pour que le résultat soit plus rapide et sans BUG demain matin
Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.