Bonjour à toutes et tous,
en cette période de fin d'année je vous souhaite tout d'abord de joyeuses fêtes que vous passez surement entre amis et en famille 
Voilà mon problème.... 
jusque là tout va bien avec le code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| Sub JourFR()
Call runes_commun_1
Dim Plage As Range ' Tests des conditions recherchées : Grade inf à vitale + Emplacement de la rune différent de "Inventaire"
Dim T1() As String
Dim i As Byte
Dim a As Integer
Range("C2").Value = "=MAX(A:A)+2"
a = Range("C2").Value ' Nbre ligne maximum de pièces dans l'hopital
Range("B2").Select
Set Plage = Range(Selection, Cells(a, "M"))
If Existe(Plage, 5, "Sérum") Then i = i + 1: ReDim Preserve T1(1 To i): T1(i) = "Sérum"
If Existe(Plage, 5, "Vaccin") Then i = i + 1: ReDim Preserve T1(1 To i): T1(i) = "Vaccin"
If Existe(Plage, 5, "Placebo") Then i = i + 1: ReDim Preserve T1(1 To i): T1(i) = "Placebo"
i = 0
' pour voir ce que contiennent les tableaux
' For I = 1 To UBound(T1): Debug.Print T1(I): Next I
Plage.AutoFilter 5, T1, xlFilterValues |
Ensuite, sur ma base de données, colonne B j'ai ensuite plein de choix, et je désire décocher les éléments qui contiennent "Inventaire"...
Dans l'absolu en mode "manuel" quand je décoche "Inventaire" sur ma liste déroulante, j'ai bien le reste et ce que je désire avoir...
Par contre avec l'enregistreur de macro, il ne me désélectionne pas ce choix "Inventaire", mais m'ajoute tous les autres choix...
Le soucis c'est que la liste peut être très longue (plus de 1300 choix différents (liste des emplacements des salles de l'hôpital)
et je ne peux pas faire 1300 lignes comme ça :
If Existe(Plage, 1, "Opération chirurgie 1") Then i = i + 1: ReDim Preserve T2(1 To i): T2(i) = "Opération chirurgie 1"
qui inclus toutes les pièces de l'hôpital en question 
Comment faire s'il vous plait, avez vous une idée à laquelle je n'aurai pas pensé ?. J'ai cherché de longues heures sur le net , mais rien ne correspond
ce que je souhaiterai dans l'absolu... et qu'il me sélectionne tous ce qu'il y a dans la liste déroulante de la colonne B mais qu'il décoche uniquement "Inventaire", y'a t'il une fonction qui peut faire ca ?
un truc du genre :
ActiveSheet.Range("$B$2",a).AutoFilter Field:=1, Criteria1:=Array false( "Inventaire *", Operator:=xlFilterValues
merci pour toute l'aide et toutes les idées que vous pourrez me conseiller
Partager