Copier coller de cellules entre fichiers suivant condition [Résolu]

Signaler
Messages postés
8
Date d'inscription
mercredi 13 février 2008
Statut
Membre
Dernière intervention
20 février 2008
-
Messages postés
8
Date d'inscription
mercredi 13 février 2008
Statut
Membre
Dernière intervention
20 février 2008
-
Bonjour à tous,

Bon j'ai un problème assez compliqué, et je commence vraiment à fatiguer alors...soyez indulgents svp ;-).

Bon en gros j'ai deux fichiers Excel (fichier A et B). En gros, je voudrais que dans A, il teste l'égalité d'une suite de cellules en colonne, avec une suite de cellule en ligne dans le fichier B (de longueur identique). Si l'égalité est vraie, alors copier la valeur qu'il y a 3 ligne en-dessous de la cellule de B, et la copier juste à droite de la colonne de A (colonneA+1). Savez-vous s'il y a moyen de faire celà? Je ne sais pas si j'ai été suffisament clair, j'avoue que je commence à m'embrouiller moi-même donc ça ne doit vraiment pas être évident à comprendre, j'en conviens.

Voici le code (brut) ou j'essaye juste de copier une des cellules, mais mes boucles sont-elles correctes?

    i = 1
    j = 1
   
    Selection.End(xlToRight).Select
    ColFin = ActiveCell.Column - 1
   
    For i = 3 To ColFin
    TestPct1 = Range(Cells(2, i)).Value
    Windows("Essai.xls").Activate
    'Selection.End(xlDown).Select
    'LigneFin = ActiveCell.Row
    LigneFinEssai = 37
        For j = 28 To LigneFinEssai
        TestPct2 = Range(Cells(j, 4)).Value
            If (TestPct1 = TestPct2) Then
            'Essai avec cellule C21 dans cellule G28'
            Windows("Totaux_2007_prevision_base12.xls").Activate
            VarCellule = Range("C21")
            Windows("Essai.xls").Activate
            Range("G28") = VarCellule
            'Range(Cells(28, 7), Cells(28 + i - 3, 7)) = VarCellule
            End If
        Next
    Next

Un grand merci d'avance!!!

3 réponses

Messages postés
131
Date d'inscription
vendredi 18 août 2006
Statut
Membre
Dernière intervention
17 mars 2010

Salut,
c'est pas clair du tout même
en fait si la cellule de A et la cellule de B ont la même valeur tu veux recopier cette valeur à droite de la cellule de A et trois lignes en dessous de la cellule de B ? Pourquoi faire ?
Et puis tu veux comparer la cellule "A1" de A avec toutes les cellules de B ou la cellule "A1" de A avec "A1" de B puis "A2" de A avec "B1" de B... à préciser
i=1 et j=1 ne sert à rien vu que tu leur donnes une valeur avec ta boucle
TestPct1 = Range(Cells(2, i)).Value, range ne sert à rien soit tu l'utilises pour nommer les cellules avec a, b, c... soit pour définir une plage de cellule en le combinant avec Cells mais pas pour une seule cellule
--> TestPct1 = Cells(2, i).Value
Utilises workbooks à la place de windows et aussi tu n'as pas besoin d'activer ton classeur, il suffit de lui dire où regarder : workbooks("").sheets("").cells(i,j) alors que dans ton code on ne voit pas de nom de feuilles
du coup VarCellule ne sert à rien

   Selection.End(xlToRight).Select
    ColFin = ActiveCell.Column - 1
   
    For i = 3 To ColFin
    TestPct1 = Cells(2, i).Value
    Windows("Essai.xls").Activate
    LigneFinEssai = 37
        For j = 28 To LigneFinEssai
        TestPct2 = Cells(j, 4).Value
            If TestPct1 = TestPct2 Then

            'Essai avec cellule C21 dans cellule G28'
            Workbooks("Essai.xls").sheets("???").Range("G28") .Value=Workbooks("Totaux_2007_prevision_base12.xls").sheets("???").Range("C21").Value

            End If
        Next j
    Next i

Nanardino64
Développons-nous, développeurs.
Messages postés
8
Date d'inscription
mercredi 13 février 2008
Statut
Membre
Dernière intervention
20 février 2008

Petite erreur : i=3
Messages postés
8
Date d'inscription
mercredi 13 février 2008
Statut
Membre
Dernière intervention
20 février 2008

Merci beaucoup de ton aide! En fait je voulais tester si une donnée (dans un "vecteur ligne") du fichier A était égale à une donnée (d'un "vecteur colonne") du fichier B, et si tel était le cas, recopier ce qu'il y avait 3 lignes en-dessous de Ai (i=1,...,n), donc Di (tout cela du fichier A), dans une colonne à droite de mon "vecteur colonne" du fichier B. Je ne sais pas si c'est bcp plus clair, c'est compliqué à expliquer, mais en tous cas après quelques bidouillages ta solution m'a bien aidée!


 


Merci beaucoup!