Vérifier si une colonne ou une ligne est cachée dans une feuille Excel

Résolu
cs_cobra2008 Messages postés 25 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 27 août 2010 - 16 déc. 2009 à 16:06
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 17 déc. 2009 à 17:09
Bonjour,

Le but de mon programme est de créer un fichier excel en y insérant des onglets d'autres fichiers.

Cela j'y arrive très bien.
par contre, l'onglet copier possède des colonnes et des lignes masquées et il faut que je supprime ces lignes et colonnes.
Le problème, c'est que je ne sais pas comment faire en VBA pour vérifier si une ligne est masquée ou non. Je connais la commande "Columns.hidden" (en ligne "row.hidden") mais cela ne me permet que de forcer le masquage ou non d'une colonne déterminée.

Savez vous quelle est la commande ou la méthode pour récupérer cette information ?
j'utilise Excel 2003.

9 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 déc. 2009 à 19:56
Re...
Voilà : j'avsis un peu de temps pour faire du plus propre. Ici, c'est d'un seul coup (et pas au fur et à mesure dans la boucle) que je détruis toutes les lignes vides :

Dim c As Range, cunion As Range
  For Each c In Sheets("Feuil1").UsedRange.Rows
    If c.Hidden = True Then
       If cunion Is Nothing Then
         Set cunion = c
       Else
         Set cunion = Application.Union(c, cunion)
       End If
     End If
   Next c
   If Not cunion Is Nothing Then
     cunion.EntireRow.Delete ' ou toute autre instruction, à ta guise, bien sûr, modifiant ces lignes (y compris pour les montrer)
   End If


J'ai bien sûr testé ===>> fonctionne très bien et d'un seul coup.
Je te laisse maintenant continuer (faire la même chose avec les colonnes maquées).
___________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 déc. 2009 à 19:58
Masquées, veux-je dire, pas "vides" (mais tu l'auras deviné, hein ...)

____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
3
cracos30 Messages postés 81 Date d'inscription vendredi 17 avril 2009 Statut Membre Dernière intervention 12 avril 2013
16 déc. 2009 à 17:07
Hi!
Vas voir à secretswindows.com

Salut
0
cs_cobra2008 Messages postés 25 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 27 août 2010
16 déc. 2009 à 17:39
ben, c'est pas vraiment du Windows mon pb, mais plutôt du Excel.
je me vois mal aller faire jour dans la base de registre juste pour savoir si une colonne (ou ligne) dans une feuille Excel est masqué ou non.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 déc. 2009 à 17:40
Bonjour,

je te propose ceci :
exemple pour les lignes (même principe pour le colonnes)

 Dim c As Range
  For Each c In Sheets("Feuil1").UsedRange.Rows
    If c.Hidden = True Then
       MsgBox c.Address
       c.EntireRow.Delete
     End If
   Next c


Tu en fais autant avec les colonnes.
Ceci étant : c'est là du bâclé. Constitue plutôt un range (appelons-le ATUER) (avec Union) de chaque c.hidden trouvé et zigouille d'un seul coup le range ATUER (plutôt que dans la boucle, pour chaque ligne)
0
cs_cobra2008 Messages postés 25 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 27 août 2010
16 déc. 2009 à 17:57
merci bcp, je vais essayer demain avec ton exemple.
je te tiens au courant
0
cracos30 Messages postés 81 Date d'inscription vendredi 17 avril 2009 Statut Membre Dernière intervention 12 avril 2013
16 déc. 2009 à 18:06
oups! Pardon tompé message
0
cs_cobra2008 Messages postés 25 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 27 août 2010
17 déc. 2009 à 10:22
Super
ca marche du tonnerre !
bon je ne comprend pas encore toutes les subtilités de VBA, car j'apprends sur le tas. Comme j'ai une formation en C, je code en VBA comme en C donc mon code n'est pas optimisé.
Mais là j'ai appris un nouveau truc

Merci encore
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 déc. 2009 à 17:09
Ne te fais pas de bile ... La première solution (la bâclée, mais qui marche) étail à ta portée. La seconde l'était moins et tu n'es pas le seul à ne pas la maîtriser ...(loin de là)


____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
Rejoignez-nous