Comparer 2 feuilles, une de réf et une avec données brutes (+compléter là où il faut)

kl1ft

XLDnaute Nouveau
Bonjour,

j'ai une petite requète à vous demander... j'ai parcouru le forum, pour m'inspirer de code pour comparer ! J'ai surtout trouver sur la toile des logiciels qui font ce que je demande (et encore en partie)...

J'ai 2 documents :

(doc1.xls) : ma référence de travail
(doc2.xls) : toutes les données du doc1 sont issues de ce doc2, le prb est qu'il n'est pas mise en page, c'est tout brute... les modifications sont assez nombreuses et j'ai déjà passé pas mal de temps à tout compléter à la main...

Je me demandais s'il était possible de faire une sorte de lecture comparative des deux documents et de mettre ainsi le doc1 à jour, fonction des modifications apportées au doc2.

J'ai mis en pj 3 docs, le doc1 sans la mise à jour, le doc 2 avec les données brutes, le doc1 aprés la mise à jour (issues du doc2).

Je vous remercie d'avance pour l'aide et les conseils que vous m'apporterez... :eek:

kl1ft
 

Pièces jointes

  • Doc1 (anvant mise à jour).xls
    14 KB · Affichages: 55
  • Doc1 (aprés mise à jour).xls
    15.5 KB · Affichages: 46
  • Doc2.xls
    15.5 KB · Affichages: 69
  • Doc2.xls
    15.5 KB · Affichages: 67
  • Doc2.xls
    15.5 KB · Affichages: 65

youky(BJ)

XLDnaute Barbatruc
Re : Comparer 2 feuilles, une de réf et une avec données brutes (+compléter là où il

Bonjour Kl1ft,
petite macro et hop!
Code:
Sub traite()
lig = [A:E].Find("*", , , , 1, 2).Row
With Range("A1:E" & lig)
.Borders(xlInsideVertical).LineStyle = xlContinuous
.Borders(xlInsideVertical).ColorIndex = xlAutomatic
.Borders(xlInsideHorizontal).LineStyle = xlContinuous
.Font.ColorIndex = xlAutomatic
.Font.Bold = False
End With
End Sub
 

kl1ft

XLDnaute Nouveau
Re : Comparer 2 feuilles, une de réf et une avec données brutes (+compléter là où il

Merci pour ta réponse youki, comment je l'intégre cette macro ? je ne connais pas du tout ces fonctions... :eek:

Comment fonctionnent elles ? :eek:

Je cherche un peu sur la toile de mon côté :)

En tout cas merci, je vais essayer de l'exploiter.
 

kl1ft

XLDnaute Nouveau
Re : Comparer 2 feuilles, une de réf et une avec données brutes (+compléter là où il

Merci pour ta réponse youki, comment je l'intégre cette macro ? je ne connais pas du tout ces fonctions... :eek:

Comment fonctionnent elles ? :eek:

Je cherche un peu sur la toile de mon côté :)

En tout cas merci, je vais essayer de l'exploiter.

Youki, ta macro fonctionne trés bien ! Cependant... elle ne correspond au cahier des charges.

Je ne peux pas faire une mise en forme du doc2, il faut que les données soient insérées là où il faut du doc2 vers le doc1... c'est plus complexe que de simplement faire la mise en forme du document.

Mais je te remercie pour ta contribution, cette macro est bien ! et fonctionnelle :cool:

kl1ft
 

youky(BJ)

XLDnaute Barbatruc
Re : Comparer 2 feuilles, une de réf et une avec données brutes (+compléter là où il

Bonsoir
Désolé du retard,
Je pense que tu sauras mettre la macro dans module1(insertion/module) et copie en entier cette macro
A modifier si besoin, ici les 2 fichiers doivent être dans le même répertoire
sinon indiquer le bon chemin ="C:\Documents\"
indiquer le nom du fichier si différent
A vérifier aussi les noms des feuilles ici c'est "Feuil"1
et si besoin reviens ici, j'aurais plus de temps que ces derniers jours
A+
Code:
Sub miseajour()
Dim Wb As Workbook
chemin = ThisWorkbook.Path & "\"
fichier = "Doc2.xls"
Feuil1.Cells.Clear 'efface tout
Set Wb = GetObject(chemin & fichier)
lig = Wb.Sheets("Feuil1").[A:M].Find("*", , , , 1, 2).Row
Wb.Sheets("Feuil1").Range("A1:E" & lig).Copy _
Sheets("Feuil1").[A1]
With Range("A1:E" & lig)
.Borders(xlInsideVertical).LineStyle = xlContinuous
.Borders(xlInsideVertical).ColorIndex = xlAutomatic
.Borders(xlInsideHorizontal).LineStyle = xlContinuous
.Font.ColorIndex = xlAutomatic
.Font.Bold = False
End With
End Sub
Complément voici le fichier et macro modifiée pour gestion d'erreur
 

Pièces jointes

  • Doc1.xls
    36.5 KB · Affichages: 97
  • Doc1.xls
    36.5 KB · Affichages: 93
  • Doc1.xls
    36.5 KB · Affichages: 88
Dernière édition:

kl1ft

XLDnaute Nouveau
Re : Comparer 2 feuilles, une de réf et une avec données brutes (+compléter là où il

salut youki, merci encore une fois pour ton aide !! :eek:

Je vais être encore un peu exigeant... j'ai vraiment besoin que les nouvelles données soient insérées... en réalité, il y a des informations en face de chaque références (A111, A112...etc...).

Il faut vraiment comparer et insérer les nouvelles références... ça complique la macro.

En tout cas, merci pour ce que tu as fais, c'est vraiment sympa.

:eek:
 

youky(BJ)

XLDnaute Barbatruc
Re : Comparer 2 feuilles, une de réf et une avec données brutes (+compléter là où il

Re bonjour,
essaye cette macro,
c'est pas évident, je n'efface rien et je rajoute des lignes et mets la valeur si besoin.
Tiens moi au courant.
Bruno

Code:
Sub miseajour()
Dim Wb As Workbook
chemin = ThisWorkbook.Path & "\"
fichier = "Doc2.xls"
On Error Resume Next
Set Wb = GetObject(chemin & fichier)
If Err > 0 Then MsgBox fichier & " non trouvé": Exit Sub
lig = Wb.Sheets("Feuil1").[A:E].Find("*", , , , 1, 2).Row
With Wb.Sheets("Feuil1")
For Each c In .Range("A1:E" & lig)
If c.Value <> "" Then
    If Range(c.Address) <> c.Value Then
     If k <> c.Row Then Rows(c.Row).Insert
      Range(c.Address) = c.Value: k = c.Row
    End If
End If
Next
End With
Exit Sub
'bordures enlever Exit Sub
With Range("A1:E" & lig)
.Borders(xlInsideVertical).LineStyle = xlContinuous
.Borders(xlInsideVertical).ColorIndex = xlAutomatic
.Borders(xlInsideHorizontal).LineStyle = xlContinuous
.Font.ColorIndex = xlAutomatic
.Font.Bold = False
End With
End Sub
 

kl1ft

XLDnaute Nouveau
Re : Comparer 2 feuilles, une de réf et une avec données brutes (+compléter là où il

Re bonjour,
essaye cette macro,
c'est pas évident, je n'efface rien et je rajoute des lignes et mets la valeur si besoin.
Tiens moi au courant.
Bruno

Code:
Sub miseajour()
Dim Wb As Workbook
chemin = ThisWorkbook.Path & "\"
fichier = "Doc2.xls"
On Error Resume Next
Set Wb = GetObject(chemin & fichier)
If Err > 0 Then MsgBox fichier & " non trouvé": Exit Sub
lig = Wb.Sheets("Feuil1").[A:E].Find("*", , , , 1, 2).Row
With Wb.Sheets("Feuil1")
For Each c In .Range("A1:E" & lig)
If c.Value <> "" Then
    If Range(c.Address) <> c.Value Then
     If k <> c.Row Then Rows(c.Row).Insert
      Range(c.Address) = c.Value: k = c.Row
    End If
End If
Next
End With
Exit Sub
'bordures enlever Exit Sub
With Range("A1:E" & lig)
.Borders(xlInsideVertical).LineStyle = xlContinuous
.Borders(xlInsideVertical).ColorIndex = xlAutomatic
.Borders(xlInsideHorizontal).LineStyle = xlContinuous
.Font.ColorIndex = xlAutomatic
.Font.Bold = False
End With
End Sub

:eek: ça marche nickel, dumoins sur les fichiers tests !!
Merci Youki (bruno) :eek:

Par contre je ne comprends pas tout... je suis un peu largué !
J'ai fais un algorithme de mon côté, il est composé de 3 boucles IF-Then-Else imbriquées :D avec des compteurs etc... etc...

J'ai une autre petite question, comment dois-je faire si mes tableaux ne sont pas exactement à la même position. (Cf. Doc1 et Doc2 en pj.) ?

Benjamin (kl1ft)
 

Pièces jointes

  • Doc2.xls
    15.5 KB · Affichages: 58
  • Doc1.xls
    15 KB · Affichages: 50
  • Doc2.xls
    15.5 KB · Affichages: 59
  • Doc1.xls
    15 KB · Affichages: 51
  • Doc2.xls
    15.5 KB · Affichages: 61
  • Doc1.xls
    15 KB · Affichages: 48
Dernière édition:

youky(BJ)

XLDnaute Barbatruc
Re : Comparer 2 feuilles, une de réf et une avec données brutes (+compléter là où il

Re bonsoir,
Ajoute des .Offset(ligne,colonne)
ligne.... est le décalage en plus ou en moins (par rapport à la source)
colonne ....idem
Dans l'exemple çi-dessous j'ai seulement fait un décalage de -3 colonnes
J'ai mis au pif...donc revoir le décalage.
Je pense que c'est la méthode la plus simple
Bruno
Code:
 If Range(c.Address) <> c.Value Then
     If k <> c.Row Then Rows(c.Row).Insert
      Range(c.Address).Offset(0,-3) = c.Value: k = c.Row
    End If
 

kl1ft

XLDnaute Nouveau
Re : Comparer 2 feuilles, une de réf et une avec données brutes (+compléter là où il

Salut Bruno,

j'ai rajouté le .Offset(-3, -2) pour test là où tu m'as dis... mais il ne se passe rien... Je ne suis pas doué ! J'essaye de comprendre en même temps, ça se complique :D

J'ai bien compris le principe de l'Offset, mais lorsque je lance la macro avec la modification, le résultat est le même que sans la modif...

En tout cas, merci encore une fois pour toute ton aide, on arrive à la fin !

benjamin (kl1ft)
 

youky(BJ)

XLDnaute Barbatruc
Re : Comparer 2 feuilles, une de réf et une avec données brutes (+compléter là où il

Voici à nouveau une solution
C'est pas évident...
bon test
 

Pièces jointes

  • Doc1.xls
    40.5 KB · Affichages: 69
  • Doc1.xls
    40.5 KB · Affichages: 61
  • Doc1.xls
    40.5 KB · Affichages: 64

kl1ft

XLDnaute Nouveau
Re : Comparer 2 feuilles, une de réf et une avec données brutes (+compléter là où il

Désolé pour la réponse un peu tardive....

Un grand Merci,

ça fonctionne, reste plus que je paramétre tout ça comme il faut et c'est nickel !!
Je te dois une fière chandelle Youki :eek: !! Merci beaucoup :)

Super le forum !! Vraiment remarquable, une aide du tonerre !! Rien à redire !!!!!!


Merci beaucoup :D (je me répète mais ça en vaut bien la peine ;) )
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 319
Membres
102 862
dernier inscrit
Emma35400