Débutant Excel VBA - Masquer Ligne / Colonne

Bonjour à tous.

Je suis à mon compte depuis peu, et je n'ai aucune connaissance en Excel.

J'ai donc débuté, pour me faire la main, à me créer un répertoire, en prenant des cours et suivant des tuto sur Internet.

Mon répertoire et donc mon codage VBA est fini, tout fonctionne.

Etant pointilleux, je souhaiterai maintenant faire en sorte que les lignes et colonnes non utilisées soient masquées et apparaissent au fur et à mesure qu'elles se remplissent.

J'ai regardé plusieurs sujets sur ce forum mais j'ai l'impression qu'aucun code ne va avec mon projet.

Je vous mets donc une capture d'écran de mon projet et le code.

Si une personne parmi vous arriverai à solutionner mon problème, ça serai super.

Option Explicit
Dim Ws As Worksheet

Private Sub UserForm_Initialize()
Dim J As Long
    Dim i As Integer

    ComboBox2.ColumnCount = 1 'Pour la liste déroulante Civilité
    ComboBox2.List() = Array("", "M.", "Mme", "Société")
    Set Ws = Sheets("Répertoire") 'Correspond au nom de votre onglet dans le fichier Excel
    With Me.ComboBox1
        For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
            .AddItem Ws.Range("A" & J)
        Next J
    End With
    For i = 1 To 7
        Me.Controls("TextBox" & i).Visible = True
    Next i
End Sub

'Pour la liste déroulante Code client
Private Sub ComboBox1_Change()
    Dim Ligne As Long
    Dim i As Integer

    If Me.ComboBox1.ListIndex = -1 Then Exit Sub
    Ligne = Me.ComboBox1.ListIndex + 2
    ComboBox2 = Ws.Cells(Ligne, "B")
    For i = 1 To 7
        Me.Controls("TextBox" & i) = Ws.Cells(Ligne, i + 2)
    Next i
End Sub

'Pour le bouton Nouveau contact
Private Sub CommandButton1_Click()
    Dim L As Integer
    If MsgBox("Confirmer ?", vbYesNo, "Demande de confirmation") = vbYes Then
        L = Sheets("Répertoire").Range("a65536").End(xlUp).Row + 1 'Pour placer le nouveau contact à la première ligne de tableau non vide
        Range("A" & L).Value = ComboBox1
        Range("B" & L).Value = ComboBox2
        Range("C" & L).Value = TextBox1
        Range("D" & L).Value = TextBox2
        Range("E" & L).Value = TextBox3
        Range("F" & L).Value = TextBox4
        Range("G" & L).Value = TextBox5
        Range("H" & L).Value = TextBox6
        Range("I" & L).Value = TextBox7
    End If
End Sub

'Pour le bouton Modifier
Private Sub CommandButton2_Click()
    Dim Ligne As Long
    Dim i As Integer

    If MsgBox("Confirmer ?", vbYesNo, "Demande de confirmation") = vbYes Then
        If Me.ComboBox1.ListIndex = -1 Then Exit Sub
        Ligne = Me.ComboBox1.ListIndex + 2
        Ws.Cells(Ligne, "B") = ComboBox2
        For i = 1 To 7
            If Me.Controls("TextBox" & i).Visible = True Then
                Ws.Cells(Ligne, i + 2) = Me.Controls("TextBox" & i)
            End If
        Next i
    End If
End Sub

'Pour le bouton Quitter
Private Sub CommandButton3_Click()
    Unload Me
End Sub

Up ?

Bonjour Yannick,

screen

tu trouveras cet outil formulaire dans une des listes qui permettent de personnaliser la barre d'outils Excel.

d'autre part, pour cet exo, je ne vois pas bien l'intérêt de masquer / afficher des lignes au fur et à mesure que ça se remplit ; d'habitude, il suffit de remplir des données, puis d'y faire une recherche ; aussi, je laisse la place à un autre intervenant pour la suite ; bonne chance !

dhany

Rechercher des sujets similaires à "debutant vba masquer ligne colonne"