Erreur code vba
Résolu
megatronnbjja
Messages postés
63
Date d'inscription
Statut
Membre
Dernière intervention
-
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai le code suivant qui me permet de filtrer des données dans un tableau.
Le code fonctionne correctement tant que je ne modifie pas les données de mon tableau.
Si j'ajoute une ligne le code fonctionne également.
Par contre, si j'ajoute une colonne, j'ai une erreur à la ligne :
Je ne vois pas trop comment éviter ce problème.
Merci d'avance pour votre aide.
Megatronnbjja
j'ai le code suivant qui me permet de filtrer des données dans un tableau.
Dim derlig As Integer, Var_Fitre
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dercol As Integer, i As Long, derlig As Long, Var_Fitre As Variant, LtrCol As String
dercol = Cells(2, Cells.Columns.Count).End(xlToLeft).Column
derlig = Range("A" & Rows.Count).End(xlUp).Row
If Not Intersect(Target, Range("A1", Cells(1, dercol))) Is Nothing Then
For i = 1 To dercol
Select Case Target.Address
Case Cells(1, i).Address
If Target = "" Then
Range("A2", Cells(derlig, dercol)).AutoFilter Field:=i
Else
If IsNumeric(Cells(1, i)) Then
Var_Filtre = CStr(Cells(1, i).Value)
'cherche le nom (la lettre) de la colonne
LtrCol = Split(Cells(1, i).Address, "$")(1)
'masque lignes
Call Masque(Var_Filtre, LtrCol)
Exit Sub
ElseIf IsDate(Cells(1, i)) Then
Var_Filtre = "=" & CDate(Cells(1, i))
Else
Var_Filtre = "*" & Cells(1, i).Value & "*"
End If
Range("A2", Cells(derlig, dercol)).AutoFilter Field:=i, Criteria1:=Var_Filtre
End If
End Select
Next i
End If
End Sub
Sub Masque(Critere As Variant, LtrCol As String)
Dim Plage As Range, Cel, Lig
Set Plage = Worksheets("feuil1").Range(LtrCol & "3:" & LtrCol & Range(LtrCol & "65536").End(xlUp).Row)
For Each Cel In Plage.SpecialCells(xlCellTypeVisible).Rows
If InStr(1, CStr(Cel), Critere) = 0 Then
Rows(Cel.Row).EntireRow.Hidden = True
End If
Next Cel
End Sub
Le code fonctionne correctement tant que je ne modifie pas les données de mon tableau.
Si j'ajoute une ligne le code fonctionne également.
Par contre, si j'ajoute une colonne, j'ai une erreur à la ligne :
Range("A2", Cells(derlig, dercol)).AutoFilter Field:=i
Je ne vois pas trop comment éviter ce problème.
Merci d'avance pour votre aide.
Megatronnbjja
A voir également:
- Erreur code vba
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages