voila j'ai fait un programme qui est relié à une carte voici le module:
Private Sub FiltreRegion()
Dim reg$, plage As Range
reg = Right(Application.Caller, 2)
With Sheets("Base1")
.AutoFilterMode = False
Set plage = .Range("G1", .[G65536].End(xlUp))
plage.AutoFilter 1, "*" & reg & "*"
Set plage = plage.SpecialCells(xlCellTypeVisible)
.AutoFilterMode = False
End With
If plage.Count = 1 Then
MsgBox "Ninguno Contacto...", , "Contactos en " & reg
Exit Sub
End If
With Sheets("FiltreRegion")
.[2:65536].Delete
plage.EntireRow.Copy .[A1]
Set plage = .[B2:C2].Resize(plage.Count - 1)
plage.Name = "Contacts"
End With
With UserForm2
.Caption = "Contactos regionales "
.Height = 122.25
.Show
End With
End Sub
Le problème est que j'ai numéroté les parties de la cartes de 1 à 40, et seules les données relatives aux parties numérotées de 10 à 40 marchent...J'ai donc essayé de remplacer:
"Dim reg$, plage As Range
reg = Right(Application.Caller, 2)"
par: "Dim reg$, plage As Range
reg = Right(Application.Caller, 1)" mais là ça me casse toutes mes données relatives aux morceaux de cartes numérotées de 10 à 40...
qui aurait une idée?, j'ai essayé en mettant "plage as long" ou "plages integer" mais je casse le reste de mon programme.
Merci d'avance
Private Sub FiltreRegion()
Dim reg$, plage As Range
reg = Right(Application.Caller, 2)
With Sheets("Base1")
.AutoFilterMode = False
Set plage = .Range("G1", .[G65536].End(xlUp))
plage.AutoFilter 1, "*" & reg & "*"
Set plage = plage.SpecialCells(xlCellTypeVisible)
.AutoFilterMode = False
End With
If plage.Count = 1 Then
MsgBox "Ninguno Contacto...", , "Contactos en " & reg
Exit Sub
End If
With Sheets("FiltreRegion")
.[2:65536].Delete
plage.EntireRow.Copy .[A1]
Set plage = .[B2:C2].Resize(plage.Count - 1)
plage.Name = "Contacts"
End With
With UserForm2
.Caption = "Contactos regionales "
.Height = 122.25
.Show
End With
End Sub
Le problème est que j'ai numéroté les parties de la cartes de 1 à 40, et seules les données relatives aux parties numérotées de 10 à 40 marchent...J'ai donc essayé de remplacer:
"Dim reg$, plage As Range
reg = Right(Application.Caller, 2)"
par: "Dim reg$, plage As Range
reg = Right(Application.Caller, 1)" mais là ça me casse toutes mes données relatives aux morceaux de cartes numérotées de 10 à 40...
qui aurait une idée?, j'ai essayé en mettant "plage as long" ou "plages integer" mais je casse le reste de mon programme.
Merci d'avance
Dernière édition: