Ecrire une valeur d'un fichier à un autre

Résolu
Dusse95 Messages postés 2 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 1 août 2006 - 31 juil. 2006 à 17:27
Dusse95 Messages postés 2 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 1 août 2006 - 1 août 2006 à 08:57
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

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
31 juil. 2006 à 19:36
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 #
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
31 juil. 2006 à 21:16
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)

++
0
Dusse95 Messages postés 2 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 1 août 2006
1 août 2006 à 08:57
Merci beaucoup
0
Rejoignez-nous