XL 2021 Comment utiliser la colonne d'une adresse en Private Sub - svp ?

Lune999

XLDnaute Nouveau
Bonjour à toutes et tous,

J'espère que vous allez bien en ce vendredi matin (bientôt le WE !)

J'aurai besoin d'aide sur mon code, j'essaye de combiner des codes qui fonctionnent individuellement en Private Sub et la première partie (jusqu'au End With) me pose problème car ne fonctionne pas...
Savez-vous comment faire ?

Merci d'avance pour votre aide !


VB:
Private Sub Worksheet_Change(ByVal Target As Range)

With Target

ActiveSheet.Unprotect "Test"

    If .Address(ColumnAbsolute:=False) = "F1" Then
  
        With Range("F1").ListObject
            If .ListRows.Count > 0 Then
    
                If .ListRows(.ListRows.Count).Range(1, "K") <> 0 Then .ListRows.Add
            Else
                .ListRows.Add
              
            End If
              
        End With

    ElseIf .Address(False, False) = "B5" Then
  
        If Not Intersect(Target, Range("B5")) Is Nothing And Range("B5") <> 0 Then

                Worksheets(Worksheets("LISTE").Range("B5").Value).Visible = True
                Worksheets("LISTE").Range("B5").Select
                Worksheets("LISTE").Range("B5").ClearContents
      
        End If
  
    ElseIf .Address(False, False) = "B6" Then
      
        If Not Intersect(Target, Range("B6")) Is Nothing And Range("B6") <> 0 Then

                Worksheets(Worksheets("LISTE").Range("B6").Value).Visible = False
                Worksheets("LISTE").Range("B6").Select
                Worksheets("LISTE").Range("B6").ClearContents
      
        End If
      
    End If
 End With

ActiveSheet.Protect "Test", True, True, True, False, False, False, False, False, False, False, False, False, False, False, True

End Sub
 

Pièces jointes

  • Test Column address.xlsm
    211.1 KB · Affichages: 2

vgendron

XLDnaute Barbatruc
hello

le deuxième with imbriqué suppose que tu travailles sur une propriété ou méthode du with précédent
dans ton cas
le premier with target==> tu travailles sur la cellule modifiée
le deuxième with range.listobject==> ne fait pas partie des objets de la cellule.. mais de la feuille : ce n'est pas le meme "parent"

essaie ce code à la place

VB:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("F1")) Is Nothing And Intersect(Target, Range("B5")) Is Nothing And Intersect(Target, Range("B6")) Is Nothing Then Exit Sub
If Target = "" Then Exit Sub
ActiveSheet.Unprotect "Test"
Cellule = Target.Address(False, False)

Select Case Cellule
    Case "F1"
        With Range("F1").ListObject
            If .ListRows.Count > 0 Then
                If .ListRows(.ListRows.Count).Range(1, "K") <> 0 Then .ListRows.Add
            Else
                .ListRows.Add
                
            End If
        End With
    
    Case "B5"
        
        Worksheets(Worksheets("LISTE").Range("B5").Value).Visible = True
        Worksheets("LISTE").Range("B5").Select
        Worksheets("LISTE").Range("B5").ClearContents
    
    Case "B6"
        Worksheets(Worksheets("LISTE").Range("B6").Value).Visible = False
        Worksheets("LISTE").Range("B6").Select
        Worksheets("LISTE").Range("B6").ClearContents
End Select

ActiveSheet.Protect "Test", True, True, True, False, False, False, False, False, False, False, False, False, False, False, True

End Sub
 

vgendron

XLDnaute Barbatruc
le cas F1: c'est pour pouvoir ajouter un nom d'onglet??
F1 étant le nom de la colonne.. je ne vois pas trop comment tu peux ajouter cette ligne...

voir en PJ
pour l'essai, j'ai copié la feuille test en test2

pour ajouter un nom d'onglet dans la table, il suffit d'écrire son nom juste en dessous de la table en colonne F
 

Pièces jointes

  • Test Column address.xlsm
    219.2 KB · Affichages: 0

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 220
Membres
103 158
dernier inscrit
laufin