Question sur usedRange???

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

T

Taddy

Guest
Bonjour le forum,

Je fais une macro de recherche sur tous les onglets et, j'utilise dans ma boucle, ws.usedRange afin de spécifier qu'il faut chercher dans l'ensemble de la plage utilisée de la feuille.
Cependant, j'ai des colonnes masquées et je crois que ma boucle ne cherche pas dans ces colonnes.

Ma question : est-ce à cause de usedRange? Si c'est le cas que dois-je faire pour que la recherche s'effectue dans les colonnes masquées?

Merci d'avance pour votre aide.
 
Re : Question sur usedRange???

Bonjour

Issu de l'aide VBA
UsedRange, propriété
Renvoie un objet Range qui représente la plage utilisée dans la feuille de calcul spécifiée. En lecture seule.

Ce code prend bien en compte les cellules masquées ou pas
Code:
Sub macrousedrange()
Dim c As Range
For Each c In ActiveSheet.UsedRange
m = m & c.Value & "-" & c.Address(0, 0) & Chr(13)
Next
MsgBox m
End Sub
A+
 
Dernière édition:
Re : Question sur usedRange???

Bonjour Taddy, vbacrumble,

Bien vu la macro vbacrumble🙂.
Je me permets d'y ajouter la condition que la cellule ne soit pas vide pour avoir un message moins long.😉

Sub macrousedrange()
Dim m As String, C As Range
For Each C In ActiveSheet.UsedRange
If C.Value <> "" Then
m = m & C.Value & "-" & C.Address(0, 0) & Chr(13)
End If
Next
MsgBox m
End Sub

Cordialement

Bernard
 
Re : Question sur usedRange???

Bonjour CBernardT


Suite à ta réflexion/modification

Voici une version remaniée de mon code précédent
(Ne prend en compte que les cellules contenant des constantes, des formules dans UsedRange)

Code:
Sub macrousedrange()
Dim c As Range
Dim usr As Range
Dim usrc As Range
Dim usrf As Range
Set usrc = ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants, 23)
Set usrf = ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas, 23)
Set usr = Union(usrc, usrf)
For Each c In usr
m = m & c.Value & "-" & c.Address(0, 0) & Chr(13)
Next
MsgBox m
End Sub


PS: j'avais testé sur une Usedrange de 3 colonnes x 5 lignes
donc ma Msgbox restait lisible 😉

A+
 
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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
19
Affichages
745
Réponses
4
Affichages
366
Retour