sélection d'une plage de taille variable

  • Initiateur de la discussion Initiateur de la discussion laurano
  • Date de début Date de début

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 !

laurano

XLDnaute Junior
Bonjour,

J'ai regardé dans les discussions qu'il y avait pu déjà avoir sur mon pb, je ne trouve pas de réponses, même si mon problème est bateau : voilà, j'ai un tableau très grand, vide et avec une mise en forme. Une macro crée un autre tableau de taille variable et plus petit que l'autre tableau.

Là où je coince c'est que, connaissant les dimensions du nouveau tableau, je veux copier la mise en forme du grand tableau sur le petit. Je fais donc un copier ajusté au dimension du nouveau tableau sur l'ancien (le grand...) pour le coller sur le nouveau (le petit...) et ça ne marche pas !

J'ai utilisé une formule du type range(cells(1,1),cells (lignes, colonnes)).copy lignes et colonnes étant des variables correspondant aux dimensions du petit tableau et ça ne donne rien.

Un dernier détail, le grand tableau que je dois copier se trouve sur un fichier.xla
 
Re : sélection d'une plage de taille variable

Bonjour laurano,

peut-être

Code:
with Workbooks("MonXLA").Worksheets("MaFeuille")
.range(.cells(1,1),.cells(lignes, colonnes)).copy
end with

Je n'avais pas cité l'intégralité de la formule mais je faisais bien référence au préalable au work books .xla. Je ne vois pas trop l'intéret du with end with.... Je vais essayer

non je ne vois pas ce que ça peut changer
 
Re : sélection d'une plage de taille variable

Re...
L'intérêt de
Code:
[COLOR="DarkSlateGray"]With Workbooks("MonXLA").Worksheets("MaFeuille")[/COLOR]
est d'éviter de d'écrire plusieurs fois
Code:
[COLOR="DarkSlateGray"]Workbooks("MonXLA").Worksheets("MaFeuille")[/COLOR]
Au lieu de :
Code:
[COLOR="DarkSlateGray"]With Workbooks("MonXLA").Worksheets("MaFeuille")
   .Range(.Cells(1, 1), .Cells(lignes, colonnes)).Copy
End With[/COLOR]
vous pouvez écrire :
Code:
[COLOR="DarkSlateGray"]Workbooks("MonXLA").Worksheets("MaFeuille").Range(Workbooks("MonXLA").Worksheets("MaFeuille").Cells(1, 1), Workbooks("MonXLA").Worksheets("MaFeuille").Cells(lignes, colonnes)).Copy[/COLOR]
C'est plus long et, à mon avis, moins lisible.​
ROGER2327
 
Re : sélection d'une plage de taille variable

Re,
Bonjour Roger, Bonjour Michel,

Je viens de tester le code que je t'ai proposé sur une macro complémentaire, et chez moi ça fonctionne.

Donc sans des fichiers exemples, difficile de savoir ce qui ne fonctionne pas chez toi...
 
Re : sélection d'une plage de taille variable

Re...
Pour cells, il faut en fait à chaque fois donner l'origine dans ces cas là ???
C'est le sens de mon précédent message.
L'explication est assez simple :
Si vous faites référence à Cells(1, 1), VBA pour Excel considère implicitement que vous faites référence à cette cellule dans la feuille active à l'instant de l'exécution.
Si vous voulez faire référence à cette cellule ailleurs que dans la feuille active, vous devez le préciser à chaque fois.
Effectivement, il faut le savoir...
ROGER2327
 
- 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
5
Affichages
705
Retour