definition d'une plage de données variable

  • Initiateur de la discussion Initiateur de la discussion Mimidoc1
  • 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 !

Mimidoc1

XLDnaute Nouveau
Bonjour,


Debutant en VB, je souhaiterais definir une plage de données variable. Je m'explique:
1-j'importe un fichier texte (5 colonnes et n lignes) sur une feuille excell (feuille 'import'). n varie d'un fichier a un autre et est tres grand (>75000 lignes).
2-je souhaite definir l'ensemble des valeurs de la colonne 2 de la feuille 'import' comme une plage de données ayant pour nom 'blanc'.

Je ne sais pas comment gerer le caractere variable du fichier que j'importe au niveau de la plage de données. Pourriez vous, s'il vous plait, m'aider.


Merci d'avance pour votre aide, Mimidoc1.
 
Re : definition d'une plage de données variable

Bonjour mimidoc1, bonjour à toutes et à tous 🙂

Debutant en VB, je souhaiterais definir une plage de données variable. Je m'explique:
1-j'importe un fichier texte (5 colonnes et n lignes) sur une feuille excell (feuille 'import'). n varie d'un fichier a un autre et est tres grand (>75000 lignes).
2-je souhaite definir l'ensemble des valeurs de la colonne 2 de la feuille 'import' comme une plage de données ayant pour nom 'blanc'.

Je ne sais pas comment gerer le caractere variable du fichier que j'importe au niveau de la plage de données. Pourriez vous, s'il vous plait, m'aider.

Je ne connais pas les limites d'XL 2007, mais tu pourrais aller dans Insertion / Nom / Définir puis donner un nom comme Colonne2 puis dans "Fait référence à", tu tapes :

=DECALER($B$1;;;NBVAL($B:$B))

Sans tester, je pense que ça devrait le faire. Ensuite, tu pourras utiliser Colonne2 comme une plage nommée, que cela soit dans des formules ou dans un code vba ( [Colonne2] ).

Tiens-nous au courant 🙂

@+

EDIT : Salut Renauder, je ne t'avais pas vu 🙂
 
Re : definition d'une plage de données variable

Re,

1-j'importe un fichier texte (5 colonnes et n lignes) sur une feuille excell (feuille 'import'). n varie d'un fichier a un autre et est tres grand (>75000 lignes).

Comme ça peut-être :
Range([B1], [B65536].End(xlUp)).Select
ActiveWorkbook.Names.Add Name:="blanc", RefersToR1C1:=Selection

Renauder, comme le nombre de lignes importées est supérieur à 75000, je pense que ton code nous amènerait à la ligne 1 😱 . C'est pourquoi j'ai favorisé l'utilisation d'une plage nommée 😉

@+
 
Re : definition d'une plage de données variable

Bonjour,

tout d'abord, merci pour vos reponses. Malheureusement, je ne comprends pas vraiment vos reponses.

1- Renauder, je ne comprends pas ce a quoi refere 'RefersToR1C1:=Selection ' dans les lignes de code que tu me poposes d'utiliser. Pourrais tu stp m'en dire un peu plus.
2- Nolich, j'efface la feuille import et son contenu avant l'import, puis j'importe les données. Si je comprends bien, c'est a ce moment que j'aurais besoin de definir colonne2. Si c'est bien cela, comment est ce que je peux realiser les opérations que tu me suggere de faire en VBA.
3-Finalement, n'y a t'il pas une maniere de definir colonne 2 comme plage de données sans essayer de trouver la derniere cellule occupée?

Je voulais vous joindre un document type, mais avec 75000 lignes, ca fait un peu gros pour passer sur le site. Si necessaire, je peux le faire passer par mail.

Merci encore pour votre aide, Mimidoc1
 
Re : definition d'une plage de données variable

Bonjour
Mimidoc1 à dit:
2- Nolich, j'efface la feuille import et son contenu avant l'import, puis j'importe les données. Si je comprends bien, c'est a ce moment que j'aurais besoin de definir colonne2. Si c'est bien cela, comment est ce que je peux realiser les opérations que tu me suggere de faire en VBA.
L'intérêt de la solution de Nolich est que tu définis ce nom une fois pour toutes manuellement et qu'il fonctionnera quoi que tu effaces ou importes.

3-Finalement, n'y a t'il pas une maniere de definir colonne 2 comme plage de données sans essayer de trouver la derniere cellule occupée?
Cela dépend de ce que tu fais ensuite : il est rarement souhaitable d'avoir trop de cellules inutiles dans une plage manipulée par VBA.
Je voulais vous joindre un document type, mais avec 75000 lignes, ca fait un peu gros pour passer sur le site.
Si tu as plus de 75000 lignes c'est que tu travailles sous Excel 2007 : pense à le préciser dans ton profil car les limites et solutions ne sont pas les mêmes.
Dans ce cas la méthode de RENAUDER est à adapter :
Code:
Range([B1], [B1000000].End(xlUp)).Select
ActiveWorkbook.Names.Add Name:="blanc", RefersToR1C1:=Selection
 
Re : definition d'une plage de données variable

adaptation de la méthode de renauder pour fonctionner sur toutes les versions d'excel (au moins depuis XL97).

Range([B1], Range("B" & ActiveSheet.Rows.count).End(xlUp)).Select

'pour répondre à minidoc, RefersToR1C1:=Selection fait expréssément référence à la plage de cellule qui est sélectionnée (et qui vient de l'être par l'instruction précédente)
ActiveWorkbook.Names.Add Name:="blanc", RefersToR1C1:=Selection
 
- 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

Retour