Copier un Range dans une variable

Will-e-coyote

XLDnaute Occasionnel
Bonjour le Forum,

Je n'arrive pas a copier une selection (Filtrée) dans une variable sous VBA.

La variable (My_Transactions) est de type Range et est censée accueillir une selection issue d'un filtre (de la zone nommée TR_Table). Je m'en sers en fait de tampon pour me permettre de ne selectionner que les colonnes (champs) qui m'interressent avant d'etre collée dans un tableau récapitulatif.

Le filtrage se passe bien et j'ai testé en copiant directement sur une autre feuille, j'ai le resultat escompté. Je pourrai manipuler ce resultat mais le problème c'est que j'ai une deuxième sélection à faire ailleurs et ou les champs ne sont pas ordonnés de la même façon....

Ca parait simple mais je n'y arrive pas et j'enrage. Quelqu'un a une idee ?

Code:
    Sheets("Budget Transactions").Select
    Range("TR_Table").Select
    Selection.Copy Range("My_Transactions")

La derniere ligne fait planter sachant que j'ai aussi essayé en ne mettant que Selection.Copy My_Transactions....

Merci par avance pour votre aide :eek:

Will
 

Pierrot93

XLDnaute Barbatruc
Re : Copier un Range dans une variable

Bonjour,

regarde peut être ceci si cela peut t'aider, sans plus de détails...
Code:
Dim p As Range
Set p = Range("_FilterDatabase")
If WorksheetFunction.Subtotal(3, p.Offset(1).Resize(p.Rows.Count - 1, 1)) > 0 Then
    p.Offset(1).Resize(p.Rows.Count - 1).Copy Sheets("Feuil2").Range("A1")
End If

bon après midi
@+
 

Will-e-coyote

XLDnaute Occasionnel
Re : Copier un Range dans une variable

Salut Pierrot,

Merci pour ta reponse mais ce n'est pas ce que je recherche.
Je veux pouvoir manipuler la variable pour n'en garder que les colonnes qui m'interessent avant de copier dans mon tableau recap. car je dois fusionner deux sources qui n'ont pas le meme ordonnancement dans les colonnes.

Je pourrai copier dans des feuilles temporaires faire mes manip separément avant de fusionner mais je trouve pas cela tres elegant et en plus fastidieux...

Mais merci quand meme car ton post ne m'aura pas ete inutile ! :cool:
 

Will-e-coyote

XLDnaute Occasionnel
Re : Copier un Range dans une variable

Re

Je te remercie Pierrot, mais cela ne sera pas necessaire.

J'ai adapte ton code pour que cela fonctionne... un peu bourrin mais le resultat est la.... Comme quoi il faut parfois savoir adapter son algorithme ...;)

Code:
    Sheets("Budget Transactions").Select
    Range("TR_Table").Select
    Set My_Trs = Range("TR_Table")
    If WorksheetFunction.Subtotal(3, My_Trs.Offset(1).Resize(My_Trs.Rows.Count - 1, 1)) > 0 Then
        My_Trs.Offset(1, 14).Resize(My_Trs.Rows.Count - 1, 1).Copy Sheets("String History").Range("A1")
        My_Trs.Offset(1, 12).Resize(My_Trs.Rows.Count - 1, 1).Copy Sheets("String History").Range("B1")
        My_Trs.Offset(1, 13).Resize(My_Trs.Rows.Count - 1, 1).Copy Sheets("String History").Range("C1")
        My_Trs.Offset(1, 15).Resize(My_Trs.Rows.Count - 1, 1).Copy Sheets("String History").Range("D1")
        My_Trs.Offset(1, 16).Resize(My_Trs.Rows.Count - 1, 1).Copy Sheets("String History").Range("E1")
    End If

Bon ben c'est pas le tout mais la d'ou je suis, j'ai 3h30 d'avance sur vous.... alors je vous dit bonne nuit :rolleyes:
 

Discussions similaires

Statistiques des forums

Discussions
312 370
Messages
2 087 689
Membres
103 639
dernier inscrit
NIEMASAFI