Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Copier un Range dans une variable

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 😱

Will
 
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
@+
 
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 ! 😎
 
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 🙄
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
399
A
Réponses
4
Affichages
669
A
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…