XL 2021 Paramètres de "Range" en VBA

Constantin

XLDnaute Occasionnel
Supporter XLD
Bonjour,
Dans le fichier joint, ouvrez la macro "IdentifierPointsCollecte"...

A l'origine (grâce à la contribution éclairée de plusieurs d'entre vous), la sélection des cellules à prendre en compte correspondait à [Plan_Magasin] ce qui avait le désagrément de supprimer toute la colorisation (fond et police) de la feuille "Plan".

J'avais pour objectif d'épargner les cellules relatives au "mobilier" pour ne modifier que les cellules relatives aux emplacements (Ex : A000, B50...)
En tâtonnant, j'ai créé des tables (Données 1 à 7) que j'ai regroupées dans l'objet Range. J'ai du faire plusieurs tables parce que le contenu de chaque table ne pouvait contenir qu'un nombre limité de cellules ou de pavés de cellules.

Mes questions après de nombreuses recherches infructueuses sur les forums :
- Quels sont les paramètres à prendre en compte pour créer des tables contenant des cellules ou pavés de cellules séparées (qualitatifs et quantitatifs)
- Combien peut-on insérer de tables (ou références) dans l'objet "Range"

Si vous pouvez m'éclairer...

Joyeuses Pâques !

Pierre
 

Pièces jointes

  • courses _couleur.xlsm
    271.5 KB · Affichages: 8
Solution
Bonjour,
"Et le combat cessa, faute de combattants..." Rodrigue, dans la scène 3 de l'acte IV de la pièce de Pierre Corneille "Le Cid"
Je n'aurai donc pas de réponse(s) à mes questions. J'en suis chagrin...
Je vais donc arrêter de quémander en vous remerciant encore de votre patience.
Je clos donc cette discussion.
Bien cordialement,
Pierre

Constantin

XLDnaute Occasionnel
Supporter XLD
Re-bonjour Job75,
Pour mieux préciser ma question, j'ai fait un petit test que tu trouveras en PJ. Au vu des résultats, il y a bien une quotité d'éléments que la sélection d'éléments séparés (cellules ou pavés) ne semble pas pouvoir dépasser.
Mais connais-tu la règle qui régit cette quotité disponible pour la création d'une table contenant des éléments séparés sur une feuille ?
Je ne suis pas très doué, tu le sais bien, mais j'aime comprendre...:)
Cordialement,

Pierre
 

Pièces jointes

  • EssaiX.xlsx
    15.2 KB · Affichages: 5

Constantin

XLDnaute Occasionnel
Supporter XLD
Bonjour mapomme,
Il n'y a de fait aucune programmation dans ce fichier et pour cause :
- j'ai surtout répondu à Job75 qui m'a bcp aidé lors de la construction de mon outil de cueillette dans mon hypermarché.
- Pour comprendre ma question, hors contexte VBA, il faut remonter à l'échange #3.
- Au vu de ce fichier, je le précise à nouveau, j'essaye de comprendre ce qui limite le nombre d'éléments que l'on peut inclure dans une table, d'où ce petit fichier qui montre les limites ou exigences qu'impose la construction d'une table...
Dans l'exemple présenté, les tables sont nommées Essai1 à Essai4.

Je lis dans ton intéressante réponse :

Cellules non contiguës pouvant être sélectionnées2 147 483 648 cellules

Je suis bien loin du compte. Dois-je comprendre que la mémoire décide de ce qu'elle veut ou peut bien enregistrer ?
En tous cas, ton lien me servira beaucoup :)

Bien cordialement,

Pierre
 

Constantin

XLDnaute Occasionnel
Supporter XLD
Avec capture d'image...
1711537087423.png
 

job75

XLDnaute Barbatruc
Bonjour Constantin, mapomme, gbinforme,

En VBA il existe la fonction Union qui permet de grouper plusieurs Range.

Dans le fichier joint cette macro sélectionne toutes les cellules jaunes :
VB:
Sub Grouper()
Dim P As Range, Q As Range, i, j
Set P = [B15:C16]
Set Q = P
For i = 0 To 4
    For j = 0 To 9
        Set Q = Union(Q, P(1 + 5 * i, 1 + 5 * j).Resize(2, 2))
Next j, i
Q.Select
End Sub
A+
 

Pièces jointes

  • EssaiX.xlsm
    20.5 KB · Affichages: 3

Constantin

XLDnaute Occasionnel
Supporter XLD
Bonjour Job75,
Merci de votre réponse. J'ai testé la macro et ça fonctionne nickel sur le fichier EssaiX !
Il faut maintenant que je comprenne comment je dois procéder pour intégrer cette fonction dans mon fichier Courses en sachant que je sélectionne les emplacements un par un et il y en a 251...
Il faut d'abord que je comprenne la syntaxe de cette macro et là, j'ai du pain sur la planche !
Ça sert à ça aussi la retraite. ;)
Mille mercis.

Pierre
 

Constantin

XLDnaute Occasionnel
Supporter XLD
Re...
J'ai "épluché" le code avec beaucoup de modestie. Si je comprends bien :
- P désigne l'emplacement de départ
- i et j reproduisent Q avec un décalage de 5 cellules
- Resize ajuste la taille des sélections à 2x2 cellules
Mais dans le cas présent les cellules ou pavés sont régulièrement disposés ce qui permet d'automatiser la reproduction du pavé de départ vers la droite puis vers le bas.

Mon problème se situe sur la feuille Y. J'ai disposé 40 pavés fusionnés sur la feuille. Comment avec "Union" saisir manuellement ces 40 pavés pour les avoirs tous ? Avec Union ? J'ai beau chercher, je ne trouve pas :(
J'ai reproduit la logique de la feuille X avec deux tables Essai5 et Essai6. Même problème que ceux décrits dans X...
Je ne vois pas comment intégrer toutes ces coordonnées dans la macro "IdentifierPointsCollecte" de mon fichier Courses, plus précisément en lieu et place de mon Range("Données1,.......,Données7). D'ailleurs, est-ce possible ?
J'y retourne !
Merci encore !

Pierre
 

Pièces jointes

  • EssaiXY.xlsm
    19.3 KB · Affichages: 3

Statistiques des forums

Discussions
313 309
Messages
2 097 030
Membres
106 812
dernier inscrit
Excellou74