Problème validation liste

antiphot

XLDnaute Occasionnel
Bonjour à toutes et à tous

En O1, j'ai une liste déroulante faisant référence à une plage variable située sur la feuille "ListeMilieux"
selon la formule: =DECALER(ListeMilieux!$E$1;;;NBVAL(ListeMilieux!$E:$E)) Nom de la liste: Projet

En U3, j'ai la formule: =(O1="";"";INDEX(CodeProjet;EQUIV(O1;Projets;0))) qui m'établit la correspondance entre le projet
choisit en O1 et son code projet situé dans une plage variable sur la feuille "ListeMilieux"
selon la formule: =DECALER(ListeMilieux!$F$1;;;NBVAL(ListeMilieux!$F:$F))

Dans la barre "Menu feuille de calcul", j'ai rajouté un menu "Demande de Milieux" avec un sous menu "Outils" qui ouvre un
userform avec deux listbox. Ces deux Listbox me permettent de transférer de l'une à l'autre les données situées sur la feuille "ListeMilieux"
(en les triant) soit les valeurs de la liste Projet et celles de la liste CodeProjet des colonnes "E" et "F" aux colonnes "G" et "H" et inversement.
Un textbox et un bouton "Suppression" me permet soit de rajouter ou de supprimer des items dans la base de données.

Mon problème est le suivant: Si à l'aide des listbox, je transfére des données modifiant ainsi le contenu de chaque liste,
il arrive que ma liste en "O1" soit inactive et/ou que la cellule en U3 qui est sensée me donner le code projet correspondant indique
#REF! . De plus si je reprends mes formules ci-dessus, je constate que celles-ci ne font plus référence à la plage que j'ai déterminé
A la place, j'ai =DECALER(ListeMilieux!#REF!;;;NBVAL(ListeMilieux!$E:$E)) pour la liste Projet. Idem pour la liste CodeProjet

Je ne sais pas si je suis très clair dans mes explications, mais j'ai fait du mieux possible. Si quelqu'un peut m'aider à résoudre ce
problème, cela me permetterait de finaliser mon application que j'ai pu réaliser grâce à votre aide.

Je remercie par avance tous ceux qui voudront bien prendre un petit moment pour me lire.

Cordialement

Philippe
 

Pièces jointes

  • fichiertest.zip
    28.4 KB · Affichages: 31
  • fichiertest.zip
    28.4 KB · Affichages: 33
  • fichiertest.zip
    28.4 KB · Affichages: 30

matthieu33

XLDnaute Occasionnel
Re : Problème validation liste

Bonjour antiphot et le forum,

En fait, cela vient du fait que les lignes E et F soient supprimées et cela modifie les références des champs.

J'ai modifié la procédure ci-dessous en enlevant la suppression des lignes et mettre un tri :

Code:
Private Sub RechercheDataRange(strCol1 As String, strCol2 As String, strTransf1 As String, strTransf2 As String)
    ' Recherche Data dans les cellules
    Dim lgLig As Long
   With Sheets("ListeMilieux")
   .Unprotect "????"
    For lgLig = .Range(strCol1 & Cells.Rows.Count).End(xlUp).Row To 1 Step -1
        If .Range(strCol1 & lgLig) = strTransf1 And .Range(strCol2 & lgLig) = strTransf2 Then
           '.Range(strCol1 & lgLig & ":" & strCol2 & lgLig).Delete Shift:=xlUp
            .Range(strCol1 & lgLig & ":" & strCol2 & lgLig).Value = ""
            
            ' Trier la colonne pour éviter les cellules vides
            .Range(strCol1 & ":" & strCol1).Sort Key1:=.Range(strCol1 & "1"), Order1:=xlAscending
            .Range(strCol2 & ":" & strCol2).Sort Key1:=.Range(strCol2 & "1"), Order1:=xlAscending

            Exit For
        End If
    Next lgLig
   .Protect "????", UserInterfaceOnly:=True
    'Range("A1").Select
    End With
End Sub

Regarde si cela te convient.
Merci

@+
 

antiphot

XLDnaute Occasionnel
Re : Problème validation liste

Bonjour matthieu33


Cela me fait plaisir de te revoir sur ce fil puisque cette macro est en grande partie ton oeuvre (ce que d'ailleurs j'ai oublié de préçiser et je m'en excuse).
En tout cas, j'ai maintenant compris d'ou venait l'erreur. Par contre la modif si elle ne génère plus une erreur au niveau des formules, elle met le bazar dans les listbox et par là même sur la feuille. En effet, si je fais des transferts de listbox à listbox, je me retrouve avec plusieurs Projets 1 etc. De plus, il semble qu'il y ait un mélange entre les Projets et les codes projets.
 

antiphot

XLDnaute Occasionnel
Re : Problème validation liste

Impeccable! Merci pour ton aide. C'est vraiment sympa. J'ai par contre remarqué un truc bizarre mais je vais pas t'embêter avec ça. Depuis la modif macro, je ne peux plus supprimer les valeurs de la listbox4. Comme je vais quitter le boulôt d'ici qq instants, je n'ai pas eu le temps de me pencher dessus. Je regarderais tout ça dans la soirée.

Encore merci
Philippe
 

matthieu33

XLDnaute Occasionnel
Re : Problème validation liste

En regardant vite fait la procédure CommandButton8_Click, peux-tu faire un essai en remplaçant :
Code:
If ListBox4.Selected(i) = True Then
par
Code:
If ListBox4.Selected(ListBox4.ListIndex) = True Then

Je ne sais pas à quoi correspond le "i".

Tu fais un essai et tu me dis.
Merci

@+
 

antiphot

XLDnaute Occasionnel
Re : Problème validation liste

Gasp !! :O :D

Bon on va dire que je n'ai rien dit, ou qu'il était temps que le week-end arrive!
Bon en fait, lorsque j'ai repris la macro de mon application pour faire le fichier test, je me suis un peu mélangé les pinceaux dans le code du bouton supprimé. Désolé

Merci encore et bon week-end

Philippe
 

Discussions similaires

Réponses
15
Affichages
569
Réponses
6
Affichages
424

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal