Ecrire une valeur d'un fichier à un autre

[Résolu]
Signaler
Messages postés
2
Date d'inscription
lundi 31 juillet 2006
Statut
Membre
Dernière intervention
1 août 2006
-
Messages postés
2
Date d'inscription
lundi 31 juillet 2006
Statut
Membre
Dernière intervention
1 août 2006
-
Salut,

mon problème est certainement très simple mais je ne m'en sors pas. En fait j'utilise plusieurs fichiers excel où j'entre presque les mêmes infos et je cherche à automatiser ca.

Disons que j'ai 2 fichiers A et B. Je veux chercher une valeur dans le fichier A et la feuilA1 correspondant à une valeur dans le fichier B et la feuilB1. J'ouvre B et je commence à chercher à faire correspondre les lignes: 

Set ClasseurB = Workbooks.Open("fichierB.xls")   //J'ouvre B et je commence à chercher à faire correspondre les lignes

For rwIndexA = 5 To n



    For rwIndexB = 3 To n
        
        If Worksheets("feuilA1").Cells(rwIndexA, 2) = Worksheets("feuilB1").Cells(rwIndexB, 6) Then //je trouve les valeurs identiques qui me donne la ligne de saisie
                
            Worksheets("feuilA1").Cells(rwIndexA, 9) = Worksheets("feuilB1").Cells(rwIndexB, 1)  //je recopie la valeur de la cellule du fichierB dans le fichierA.
                
        End If
           
    Next rwIndexB
   
Next rwIndexA


En fait c'est de la théorie parce que ca ne marche pas. Est-ce que quelqu'un à la solution pour moi SVP?

3 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Heu ok, je veux bien mais tes worksheets, ils pointent sur quoi là. Faudrait peut-etre leur dire de pointer sur les bons fichiers.

Essaye ça, pour voir si c'est mieux (je le donne au pif, j'ai pas fais l'essai) :

Dim ClasseurA As Workbook
Dim ClasseurB As Workbook

Set ClasseurA = Workbooks.Open("fichierA.xls")
Set ClasseurB = Workbooks.Open("fichierB.xls")

For rwIndexA = 5 To n

    For rwIndexB = 3 To n
       
        If ClasseurA.Worksheets("feuilA1").Cells(rwIndexA, 2) = ClasseurB.Worksheets("feuilB1").Cells(rwIndexB, 6) Then
               
            ClasseurA.Worksheets("feuilA1").Cells(rwIndexA, 9) = ClasseurB.Worksheets("feuilB1").Cells(rwIndexB, 1)
               
        End If
          
    Next rwIndexB
  
Next rwIndexA

Sevyc64  (alias Casy) <hr align ="center" size="2" width="100%" /><stron></stron># LE PARTAGE EST NOTRE FORCE #
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
et je rajouterai l'indexation (je sais même pas si ça se dit...) de l'application Excel :

Dim AppExcel As Object
Dim ClasseurB As Workbook

Set AppExcel = CreateObject("Excel.Application")
Set ClasseurA = AppExcel.Workbooks.Open("fichierA.xls")
Set ClasseurB = AppExcel.Workbooks.Open("fichierB.xls")

(et tu peux référencer aussi tes classeurs et tes feuilles)

++
Messages postés
2
Date d'inscription
lundi 31 juillet 2006
Statut
Membre
Dernière intervention
1 août 2006

Merci beaucoup