VBA Masquer une seule colonne

Bonjour à tous,

je veux réaliser une macro qui masque des colonnes et qui enregistre ensuite mon fichier en PDF. Donc jusqu'ici c'est très simple et ça se fait même avec l'enregistreur de macro. Mais je veux cadrer les choses par rapport à l'enregistreur, en définissant les feuilles auxquelles se référer et l'endroit où je veux enregistrer mon fichier.

Le problème c'est qu'au niveau du masquage des colonnes, mon code ne fait pas ce que je souhaite. Je lui demande de masquer la colonne E, et il me masque la totalité des colonnes entre A et AA. Je pense que c'est parce qu'il y a une cellule fusionnée de A à AA qui est sélectionnée lorsque je sélectionne la colonne E.

Pourtant lorsque l'enregistreur réalise la chose ça se passe très bien et j'ai copié collé ce que fait l'enregistreur à la différence près que je lui dis sur quelle feuille agir !

Je dois avouer que j'en deviens fou. Voici le code que j'utilise:

Sub Macro1()
Dim NomFichier As String
Dim S_Commande As Worksheet
Dim S_LC As Worksheet

Set S_Commande = ThisWorkbook.Worksheets("Commande")
Set S_LC = ThisWorkbook.Worksheets("Launch Card")
NomFichier = S_Commande.Range("B3").Value

    S_LC.Columns("E:E").Select
    Selection.EntireColumn.Hidden = True

    S_LC.Columns("Q:Q").Select
    Selection.EntireColumn.Hidden = True

    S_LC.Columns("T:AA").Select
    Selection.EntireColumn.Hidden = True

    S_LC.Range("A1").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        NomFichier, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True
End Sub
End Sub

Si j'arrête le code après avoir masquer la colonne E je fais déjà face au problème. Quelqu'un pourrait-il m'aider ?

Sachant que dans la cellule B3 se trouve le chemin et le nom du fichier pour l'enregistrement.

Merci à vous,

SkillzZ

Bonjour,

Sub Macro1()
    Dim NomFichier As String, S_Commande As Worksheet, S_LC As Worksheet
    Set S_Commande = ThisWorkbook.Worksheets("Commande")
    Set S_LC = ThisWorkbook.Worksheets("Launch Card")
    NomFichier = S_Commande.Range("B3").Value
    With S_LC
        .Columns.Hidden = False
        .Columns("E").Hidden = True
        .Columns("Q").Hidden = True
        .Columns("T:AA").Hidden = True
        .ExportAsFixedFormat xlTypePDF, NomFichier
    End With
End Sub

Bonjour MFerrand,

ta solution fonctionne parfaitement et répond pile poil à mes attentes. Je te remercie beaucoup. Pourrais-tu m'expliquer pourquoi dans ton code, uniquement les colonnes choisies sont masquées, tandis que dans le mien ce n'est pas le cas ? Comment évites-tu le problème de cette cellule fusionnée ?

Merci encore, et bonne journée,

SkillzZ

Bonjour,

Tu sélectionnes ! Et il se passe la même chose que quand tu le fais avec la souris !

Exact ..

Merci MFerrand !

Tu peux donc constater qu'en plus de ne pas être utile, Select peut avoir des effets pernicieux !

Bonne journée.

Rechercher des sujets similaires à "vba masquer seule colonne"