Vérifier si une colonne ou une ligne est cachée dans une feuille Excel [Résolu]

cs_cobra2008 25 Messages postés mardi 24 juillet 2007Date d'inscription 27 août 2010 Dernière intervention - 16 déc. 2009 à 16:06 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention
- 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.
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 16 déc. 2009 à 19:56
3
Merci
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.

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de ucfoutu
Meilleure réponse
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 16 déc. 2009 à 19:58
3
Merci
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.

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de ucfoutu
cracos30 81 Messages postés vendredi 17 avril 2009Date d'inscription 12 avril 2013 Dernière intervention - 16 déc. 2009 à 17:07
0
Merci
Hi!
Vas voir à secretswindows.com

Salut
Commenter la réponse de cracos30
cs_cobra2008 25 Messages postés mardi 24 juillet 2007Date d'inscription 27 août 2010 Dernière intervention - 16 déc. 2009 à 17:39
0
Merci
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.
Commenter la réponse de cs_cobra2008
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 16 déc. 2009 à 17:40
0
Merci
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)
Commenter la réponse de ucfoutu
cs_cobra2008 25 Messages postés mardi 24 juillet 2007Date d'inscription 27 août 2010 Dernière intervention - 16 déc. 2009 à 17:57
0
Merci
merci bcp, je vais essayer demain avec ton exemple.
je te tiens au courant
Commenter la réponse de cs_cobra2008
cracos30 81 Messages postés vendredi 17 avril 2009Date d'inscription 12 avril 2013 Dernière intervention - 16 déc. 2009 à 18:06
0
Merci
oups! Pardon tompé message
Commenter la réponse de cracos30
cs_cobra2008 25 Messages postés mardi 24 juillet 2007Date d'inscription 27 août 2010 Dernière intervention - 17 déc. 2009 à 10:22
0
Merci
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
Commenter la réponse de cs_cobra2008
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 17 déc. 2009 à 17:09
0
Merci
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.
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.