Les Allergies
Alimentaires
Posez votre question Signaler

Programme vba excel - copie valeurs 2 fichier [Résolu]

altessie - Dernière réponse le 1 oct. 2010 à 10:22
Bonjour,
Je suis en train d'effectuer un programme en visual basic sur Excel. Ce dernier compare les valeurs de deux colonnes de deux fichiers excel et vient prendre les valeurs de la colonne d'à côté du fichier 2 et vient la coller dans le fichier 1 à la bonne ligne article.
Par exemple :
fichier 1 : fichier 2:
colonne A : colonne A : Colonne B
1 3 A
2 15 B
3 8 C
4 1 D
Je souhaite que la colonne B du fichier 1 affiche donc :
D
0
A
0
La difficultée se trouve dans les deux fichiers excel. Il faut savoir que j'en ait créé l'un et que le deuxième est réceptionné. Je ne sais pas quelle options et comment il a été créé.
Mon code actuel est :
Set sh2 = Workbooks("Classeur2.xls").Sheets("Feuil1").Range("A1:A500")
Set sh1 = Workbooks("Classeur1.xls").Sheets("Feuil1").Range("A1:A500")
For Each c In sh2
temp = c.Value
If temp <> "" Then
Set plage = sh1.Columns("A").Cells.Find(temp)
line = plage.Row
Workbooks("Classeur1.xls").Sheets("Feuil1").Cells(line, 3).Value = c(1, 3).Value
End If
Next
Le script plante à la ligne line = plage.row
Quand je copie le fichier reçu dans un nouveau classeur excel, il bugge aussi mais les valeurs sont bien collés dans mon premier classeur.
Est ce que quelqu'un a une idée de ce qui se passe et de comment je peut y remédier ?
Merci par avance pour toute aide que vous pourrez m'apporter.
Lire la suite 

Programme vba excel - copie valeurs 2 fichier »

6 réponses
Réponse
+0
moins plus
Bonjour,
Explique un peu mieux ce que tu veux faire... j'ai rien compris !
A+
Ajouter un commentaire
Réponse
+0
moins plus
Oui, je crois avoir compris,
Les références dans les colonnes A sont aux mêmes endroits sur les deux classeurs ou à des emplacements différents.
Ajouter un commentaire
Réponse
+0
moins plus
Des emplacements différents. Mon programme prend donc les cellules 1 a 1 du fichier 2 et cherche son emplacement dans le fichier avant de pouvoir coller les valeurs sur le reste de la ligne correspondante. Dit moi si c pas clair. Comme je suis dedans depuis un certain temps ca me parait limpide mais je suis pas vraiment objective.
Ajouter un commentaire
Réponse
+0
moins plus
C'est OK cette fois je pense que j'y suis.
Sub RECOPIER() 
Dim WkSource As Worksheet 
Dim Wkcopie As Worksheet 
Dim LigSource As Long 
Dim LigCopie As Long, Temp As Variant, DerLig As Long 
'Adapter les Wk aux deux classeurs 
    Set WkSource = Workbooks("Classeur2.xls").Sheets("Feuil1") 
    Set Wkcopie = Workbooks("Classeur1.xls").Sheets("Feuil1") 
    DerLig = Wkcopie.Range("A65536").End(xlUp).Row 
    For LigSource = 1 To WkSource.Range("A65536").End(xlUp).Row 
        Temp = WkSource.Cells(LigSource, 1) 
        For LigCopie = 1 To DerLig 
            If Wkcopie.Cells(LigCopie, 1) = Temp Then 
                Wkcopie.Cells(LigCopie, 2) = WkSource.Cells(LigSource, 2) 
                Exit For 
            End If 
        Next LigCopie 
    Next LigSource 
End Sub


Tu dis,
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Ajouter un commentaire
Réponse
+0
moins plus
Super merci, ca marche !!!!!

J'étais partie sur le même principe au début mais j'avais pas réussit à le mettre en oeuvre d'où le programme que j'ai posté.

Merci beaucoup pour ton aide :-)
Ajouter un commentaire
Ce document intitulé « Programme vba excel - copie valeurs 2 fichier » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?