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

Comment déterminer une plage de cellules dans une feuille cachée

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

did85

XLDnaute Junior
Bonsoir,
j'ai besoin de déterminer par VBA une plage de cellules dans plusieurs feuilles cachées.

Cette plage est évolutive en fonction de la feuille sélectionnée aussi bien en colonne qu'en ligne.

Je vous joins un fichier simplifié, il permet de :
- masquer 2 feuilles
- afficher les 2 feuilles masquées
- lancer un formulaire qui permet de sélectionner la feuille de la plage à afficher.

Lorsqu'on choisit une feuille, un message apparaît donnant le nombre de colonnes et le nombre de la lignes de la feuille, mais je n'arrive pas pour autant à déterminer la plage (le second message)

Code:
With Sheets(NomSheet)
        DerLig = .Range("A65536").End(xlUp).Row
        DerCol = .Range("A1").End(xlToRight).Column
        MsgBox "La Feuille " & NomSheet & " contient : " & DerLig & " Lignes et " & DerCol & " Colonnes.", , "Info"
    
        [COLOR="Red"]Set Plage = .Range("A1", .Range("C1").End(xlDown))[/COLOR]
        MsgBox "Le nombre de cellules de la plage est : " & Plage.Count
        
    End With

Ce qui me pose problème, c'est la ligne en rouge qui n'est pas évolutive en colonne. Le .Range("C1") est bloquant
Code:
 .Range("C1").End(xlDown)
Avez-vous une idée ? ou une solution ?

Merci
 

Pièces jointes

Re : Comment déterminer une plage de cellules dans une feuille cachée

bonjour

essaye ca
Code:
Set Plage = .Range("A1:" & .Range("C1").End(xlDown).address)

Edit : Trop nul le wil, il fait le copier coller et oublie d'y appliquer la modif
 
Dernière édition:
Re : Comment déterminer une plage de cellules dans une feuille cachée

Bonsoir,
merci à vous deux, tout ce que vous me notez fonctionne, le problème c'est que mes valeurs vont bien au delà de la colonne C.

Et c'est justement elle que je souhaite prolonger lors de la sélection, mais je ne connais jamais la dernière colonne écrite.

Si quelqu'un a une autre idée ?

Merci
 
Re : Comment déterminer une plage de cellules dans une feuille cachée

Re

Essaye de t'inspirer de:

Code:
Msgbox ActiveSheet.UsedRange.Columns.Count

Ce qui pourrait servir à :
Code:
MsgBox Cells(65536, ActiveSheet.UsedRange.Columns.Count).End(xlUp).Address(0, 0)
 
Dernière édition:
Dernière édition:
Re : Comment déterminer une plage de cellules dans une feuille cachée

Bonsoir Boisgontier,
merci pour le calcul des lignes et des colonnes, mais je ne pense pas que ça résolve mon problème. Sauf si je n'ai pas compris ton code.

J'ai besoin de définir la plage délimitée par le nombre de lignes et de colonnes de la feuille.

Parce qu'ensuite je m'en sers dans un listview.

Merci encore, je continue à chercher.
 
Re : Comment déterminer une plage de cellules dans une feuille cachée

Bonsoir did85, wilfried42, vbacrumble et JB, bonsoir à toutes et à tous,

wilfried42 : je pense que ton souci vient de cette ligne de calcul de plage :

Code:
[COLOR="Blue"]Set[/COLOR] Plage = .Range("A1", .Range("C1").End(xlDown))

que je remplacerai bien volontiers par :

Code:
[COLOR="blue"]Set[/COLOR] Plage = .Range("A1").CurrentRegion

qui est plus fiable que Range("XX").UsedRange 😉

@+

EDIT : Par ailleurs, je te conseille de mettre la propriété TakeFocusOnClick de tes commandButtonx à False. Ca pourra être utile si ton code évolue.
 
Dernière édition:
Re : Comment déterminer une plage de cellules dans une feuille cachée

Re



Pourquoi qu'il est pas fiable le UsedRange ?

et pourquoi vous l'aimez pas ?

Les deux lignes ci-dessous me renvoient la meme adresse de cellule
Code:
MsgBox Cells(65536, Sheets(1).Cells.Find("*", , , , xlByColumns, xlPrevious).Column).End(xlUp).Address(0, 0) 
MsgBox Cells(65536, Sheets(1).UsedRange.Columns.Count).End(xlUp).Address(0, 0)
 
Dernière édition:
Re : Comment déterminer une plage de cellules dans une feuille cachée

Bonsoir à tous et à toutes,

merci de votre aide.

Nolich, ton bout de code fonctionne :
Code:
Set Plage = .Range("A1").CurrentRegion
Maintenant, il me reste à l'adapter dans mon cas, mais la plage est bien dans le Set.

Merci

Question résolue
 
Dernière édition:
- 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
7
Affichages
362
Réponses
4
Affichages
449
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
15
Affichages
467
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…