Formule qui n'est plus correcte car format différent

re,

si je comprends bien, tout fonctionne pour le moment ?

maintenant avec LO.Range.AutoFilter 4, Nom & "*" vous filtrez la 4eme colonne et si vous remplacez ce "4" par i (qu'on a calculé la ligne précédente),on peut déplacer cette colonne, la macro s'adaptera, donc c'est plus pro-actif !

J'avais aussi essayé avec le "i" à la place du "4" mais ça ne marche pas non plus :

image
Private Sub Worksheet_Change(ByVal Target As Range)
     Dim Nom, LO, Isect As Range, sHeader, i, i1, temp
     Set LO = Me.Range("tabel1").ListObject

     If Target.CountLarge > 1 Then Exit Sub

     Set Isect = Intersect(Me.Range("tabel1"), Target)
     If Target.Address = Me.Range("Filtre_Nom").Address And Len(Target.Value) > 0 Then
          Me.Unprotect MdP
          LO.Range.AutoFilter
          Nom = Target.Value
         If Application.WorksheetFunction.CountIf(Range("tabel1[nom]"), Nom & "*") > 0 Then
               i = LO.ListColumns("Nom").Index     'position colonne "Nom"  **************
               LO.Range.AutoFilter i, Nom & "*"     'utiliser cette position pour le filtre
               Application.Goto LO.DataBodyRange.SpecialCells(xlVisible)(1), 1
          Else
               With LO
                    LO.Parent.Unprotect MdP
                    Application.EnableEvents = False
                    If .ListRows.Count >= 2 Then
                         .ListRows.Add 2
                         .ListRows(1).Range.Copy .ListRows(2).Range
                         On Error Resume Next
                         With .ListRows(1).Range
                              .SpecialCells(xlConstants).ClearContents
                              .Cells(1, "C") = UCase(Nom)
                         End With
                    End If
                    Application.EnableEvents = True
                    Proteger
               End With
          End If
          Proteger

     ElseIf Not Isect Is Nothing Then

re, quelque lignes plus loin, j'avais besoin du même i ou 4 au lieu du "C"

.Cells(1, i) = UCase(Nom) 'coller le nouveau nom dans ligne 1, aussi colonne "i" !!!!

Encore mille mercis, c'est parfait :-))))))))))))))))))))))))

Rechercher des sujets similaires à "formule qui correcte format different"