Masquer des lignes à la sortie d'une boucle, Lignes du début à la fin

Bonjour les gars,

je sollicite votre expertise pour pouvoir avancer dans mon projet.

Je fais un programme qui permet d'avoir les noms des onglets d'une feuille donnée, pour chaque onglet, les noms des colonnes positionnées en dessus du nom de l'onglet(feuille).

Mon problème est que je veux masquer à la sortie de la boucle des colonnes(boucle avec k) le nom des colonnes pour chaque onglet.

En gros les lignes sous chaque nom d'onglet.

Voici le bout de code:

Sub ouvrir2() Dim monfichier, nom As String Dim i, j, k, deb, tcol As Variant Dim nom_feuille, Colname, Fichierchoisi As String Dim WKB2 As Workbook 'Application.ScreenUpdating = False ChDir "C:\" monfichier = Dir("*.xlsx") Workbooks.Open Filename:=monfichier Fichierchoisi = Application.GetOpenFilename If Fichierchoisi <> "" Then Set WKB2 = ActiveWorkbook End If For i = 1 To WKB2.Worksheets.Count 'début boucle sur les onglets du classeur' j = ThisWorkbook.Worksheets(1).Range("A1:C1").SpecialCells(xlCellTypeLastCell).Row + 1 nom_feuille = WKB2.Worksheets(i).Name 'récupérer le nom de l'onglet' deb = j + 1 If nom_feuille <> "" Then ThisWorkbook.Worksheets(1).Cells(j, 1).Value = nom_feuille ThisWorkbook.Worksheets(1).Activate ActiveSheet.CheckBoxes.Add(Cells(j, 2).Left, Cells(j, 2).Top, Cells(j, 2).Width, Cells(j, 2).Height).Select With Selection .Name = "Checkbox" & j .Caption = "Selectionner" .Value = xlOff .OnAction = "Notre taf.xlsm!ouvrir2" End With End If k = 1 'on va récupérer les entêtes des colonnes de la feuille ' For k = 1 To WKB2.Worksheets(nom_feuille).Range("A1").SpecialCells(xlCellTypeLastCell).Column Colname = WKB2.Worksheets(nom_feuille).Cells(2, k) ThisWorkbook.Worksheets(1).Cells((j + k), 3).Value = Colname Next Range(Cells(deb, 1), Cells((deb - 1 + k), 1)).Select Selection.Entire.Hidden = True Next 'Application.ScreenUpdating = True End Sub

Merci d'avance.

Salut,

Parmi mes conseils du 30 décembre, j'ai oublié de te préconiser de placer des fichiers-exemples de ton problème. Ca aide quand même à recevoir des réponses.

De plus, lorsque tu places un code sur le fil, utilise les bonnes balises : lorsque tu choisis ta balises au-dessus du message, prends l'option avec l'icône </> (en passant le curseur dessus, tu as le texte ''Code'' qui apparait).

Ca donne un résultat comme celui ci-dessous :

Sub ouvrir2()
Dim monfichier, nom As String
Dim i, j, k, deb, tcol As Variant
Dim nom_feuille, Colname, Fichierchoisi As String
Dim WKB2 As Workbook
'Application.ScreenUpdating = False
....
End sub

Enfin, pour répondre à ta question, remplace la ligne Selection.Entire.Hidden = True par la ligne

Selection.EntireColumn.Hidden = True

Cordialement.

Je prends note de tes conseilles.

Merci Yvouille

Merci pour ta réponse.

Et quant est-il de la solution que je t'ai proposée ?

ça ne marche pas non plus.

cette ligne de code reste en jaune.

J'ai aussi essayé ceci:Rows("deb:fin").Hidden = True

ça me signale erreur 13

Je prends note de tes conseilles.

..... mais ne les suis pas

Merci d'envoyer tes fichiers réels ou du moins des copies exactes ''anonymisées''.

Je joint ici le fichier de travaille et le fichier à traiter.

Je suis presqu'au bout du rouleau.

Dans le programme Ouvr, j'ai essayer de cacher les lignes déjà dans la boucle for k=1,

Quand je débug et que ça tourne, rien ne s'affiche.Cependant avant de compléter l'option de cacher les lignes, tous s'affiche bien.

Dans le programme Ouvrir2, j'ai essayer de les cacher à la sortie de boucle.

3notre-taf.xlsm (27.25 Ko)

Tes textes manquent un peu de précision. J'ai dû réfléchir un moment afin de comprendre qu'un ''programme'' est pour toi une macro (ou un code VBA).

Mon problème est que je veux masquer à la sortie de la boucle des colonnes(boucle avec k) le nom des colonnes pour chaque onglet

Comme tu avais écrit le texte ci-dessus, je croyais - en ayant lu un peu trop rapidement - que tu voulais masquer des colonnes, mais en fait tu veux masquer des lignes, d'où ma proposition précédente :

Selection.EntireColumn.Hidden = True

Je n'ai testé que ta macro ''ouvrir2'' et te propose la correction suivante :

Rows(deb & ":" & fin).EntireRow.Hidden = True

Amicalement.

Merci bien Yvouille,

Mon problème est ailleurs maintenant

Merci pour le coup de main.

Mon problème est ailleurs maintenant

Quèsaco ??????

Est-ce que mon intervention t'a servi ? Est-ce que mon travail a été parfaitement inutile ?

Je trouve que tu as une drôle de manière de demander de l'aide (gratuite) et d'en être reconnaissant(e).

Amicalement.

Evidemment que ton travail m'a été utile.

Merci beaucoup

je veux juste dire que si cette macro n'atteint pas l'objectif que je suis fixé, c'est un autre problème.

Je le dis pour quelqu'un qui passerait ramasser mon code qui ne fonctionne pas totalement.

Toutes mes excuses.

Merci encore.

Amicalement

Merci pour ta réponse,

Je le dis pour quelqu'un qui passerait ramasser mon code qui ne fonctionne pas totalement.

Pour quelqu'un qui ramasserait ton code afin de le finaliser pour toi ou pour l'utiliser à son compte ?

Si tu as encore besoin d'aide, dis-le clairement, indique jusqu'où je t'ai permis d'avancer, indique ce qui manque.

Si tu n'as plus besoin d'aide, indique éventuellement ce fil comme ''Résolu'', en cliquant sur le petit V vert dans l'un de tes message, comme indiqué dans ma signature.

Amicalement.

Rechercher des sujets similaires à "masquer lignes sortie boucle debut fin"