Eviter doublons dans Combobox

Désolé mais j'ai plein d'erreurs à l'ouverture. Textbox date, liaisons...

En gros qu'avez-vous changé par rapport au dernier fichier posté ?

Voici ce que je vois :
- Vous avez aussi modifié la variable Fichier. Elle doit rester Public et non pas Dim
- Evitez aussi les accents dans les codes. C'est une source de bug
- vous avez modifié la macro Checkbox2, le bouton Validation et désactivé la macro combobox3 ?
- Vu que la combobox3 est désactivée, la combobox2 ne reprend plus de matériel et ne se vide plus si par exemple vous cochez la case materiel interne puis que vous changez pour cocher matériel externe.

La combobox2 ne sera pas utilisée, on importera quand la feuille "historique réservation" l'ensemble du matos correspondant au n° de BL dans l'autre fichier.

Relisez car je ne comprends pas ce que vous écrivez là...

Faites attention car excel devient vite une usine à gaz lorsque cela se complique

J'ai l'impression que vous n'avez pas utilisé le dernier fichier que j'ai posté

Edit : Je suis en train de faire des corrections. Donc ne mettez pas de fichier en ligne

Question supplémentaire : Private Sub CommandButton1_Click(), pourquoi avez-vous ajouté les 5 premieres lignes ?

Alors j'ai modifié la liaison, normalement il ne devrait plus y avoir de souci.

J'ai corrigé :

- la variable Fichier est remise en Public

- j'ai enlevé les accents

- je n'ai pas modifié la Checkbox2, j'ai juste changé le nom de la fonction ouvrant le fichier matériel externe

- j'ai modifié le contenu du bouton validation

- et oui j'ai désactivé pour le moment la macro combobox3, que j'utiliserai dans un autre cas

La combobox2 ne sera pas utilisée, on importera dans la feuille "historique réservation" l'ensemble du matos correspondant au n° de BL dans l'autre fichier. donc plusieurs lignes seront incrémentées en même temps pour un même N° de BL.

Question supplémentaire : Private Sub CommandButton1_Click(), pourquoi avez-vous ajouté les 5 premières lignes ?

Effectivement elles ne servent pas à grand chose.

Ok. J'ai déjà modifié sur le fichier.

Autres questions,

- lorsque vous cliquez sur matériel interne et que vous n'avez pas de département dans la feuille inventaire, vous voulez quoi dans la combobox2
- Dans la macro Private Sub CommandButton1_Click(), vous avez une instruction InStr(ComboBox2.Text, Sheets("Inventaire").Range("C" & i).Value) > 0. Quel était le but par rapport à la boucle et à la colonne C. Vérifier si la donnée est présente ?

d'accord merci!

Normalement une fois les données complétées dans la feuille inventaire il y aura forcément : soit ASS, soit AEP dans le département. la cellule ne sera jamais vide, sauf si la ligne est vide.

Oui c'était le but.

Ok. ce n'est pas nécessaire puisque la combobox2 est remplie sur la base de la colonne C. Donc la valeur dans la combobox2 se trouve déjà sur la feuille

Vous avez aussi des lignes vides jusque 10000. Là comme vous êtes en tableau structuré, vous ne devez pas prévoir de lignes vides. Si vous en ajouter manuellement, comme je vous avais dit il suffit d'insérer dans la tableau. Si ok, je supprime toutes ces lignes vides. Une fois terminé on pourra repositionner le tableau depuis la ligne 1 et colonne A

Edit : la colonne C de la feuille inventaire n'a jamais de doublon. Juste ?

D'accord!

D'accord, mais pourquoi repositionner le tableau en colonne A? Ca pose un problème que la première colonne soit la B?

Oui effectivement, aucun doublon possible dans la colonne C de la feuille inventaire.

D'accord, mais pourquoi repositionner le tableau en colonne A? Ca pose un problème que la première colonne soit la B?

C'est juste cela évite de commencer par 2 par exemple dans les codes quand vous faites intervenir des colonnes dans une boucle. Ce qui est votre cas notamment parce qu'il y a moyen de simplifier le code.

Mais si cela vous gêne on ne le fait pas

D'accord, bah si ça le simplifie pourquoi pas!

Bonjour

1. Dans le code de la validation pour le matériel externe (checkbox2 = true) vous faites une recherche sur la colonne B (variable i) pour vérifier que la valeur i correspond à la combobox3. Le code va balayer la colonne B et pour chaque bon de livraison (combobox3) trouvé en feuille (Ijinus par exemple), il va ajouter chaque ligne trouvée dans l'historique des réservations.

Vous confirmez cela ?

2. Autre point toujours dans le même code, vous définissez la dernière ligne sur base de la colonne A, ce ne serait pas plutot mieux de le faire sur la colonne D qui reprend le BL car dans cette colonne vous êtes toujours sûr d'avoir une info.

Bonjour,

1 - Oui c'est tout à fait ça !

2 - Non il n'y a pas de numéros de BL quand il s'agit de matériel interne. Et puis l'utilisateur de ce fichier devra obligatoirement rentrer un numéros d'ordre.

Point 2 : Ok mais vous avez toujours une info puisque le code met un tiret mais je peux laisser en colonne A si vous voulez

Point 3 : Toujours dans le code Valider en cas de matériel externe, si la combobox2 est vide on ne complète rien dans la feuille inventaire. Juste ?

Point 4 : Toujours dans le code valider en cas de matériel inerne (checkbox1 = true), on remplit D et E avec les infos de la combobox2 (??) même si elle est vide. Juste ?

2- Oui, mais je pense que c'est mieux de laisser comme ça.

3- Si le matériel est externe on ne s'occupe pas de la combobox 2. On se sert uniquement du n° de BL de la combobox 3.

4- Non. Si checkbox1=true, :

- on rempli la colonne D avec "-"

- on rempli la colonne E avec la combobox2

- on rempli la colonne F avec la cellule de la colonne D de la feuille "inventaire" dont la cellule de la colonne C correspond à la Combobox2

- on rempli la colonne G avec la cellule de la colonne E de la feuille "inventaire" dont la cellule de la colonne C correspond à la Combobox2

J'espère que c'est clair ..

Point 4. Ok et on ajoute aussi dans la feuille inventaire :

- Non dans la colonne I
- Date départ et retour en colonnes J et K
- Agence dans la colonne Localisation en colonne L

Oui c'est ça !

Je passe au matériel externe

Lorsque vous choisissez un BL dans la combobox3, vous importez dans la feuille Historique reservation toutes les lignes du fichier gestion-loc relatives à ce BL ?

exemple si je prends le BL 18687, cela fait 55 lignes à importer.

Juste cela ?

oui voilà, on importe les 53 lignes correspondant à ce BL

Le fichier en retour pour test

Attention que à l'ouverture vous avez toujours la liaison avec un fichier nommé "copie de gestion-du-materielmodif-lsa2". Pour supprimer la liaison, il faut aller dans Fichier -> information -> puis en bas à droite vous trouvez l'option "Modifier les Liaisons". Là cliquez sur "Rompre les laisons". Pour pouvoir le faire vous devez toujours avoir le fichier source. Faites d'abord cette suppression avant de tester via l'userform. Dites moi si vous y parvener.

J'ai laissé pas mal d'instructions désactivées (en vert) pour garder une trace. Si votre test est concluant on pourra supprimer ces infos inutiles

Donnez moi votre retour sans mettre de fichier.

J'ai réussi à enlever la liaison pour mon fichier, mais pas avec celui là. Je modifie la liaison avec le bon fichier, mais quand je vérifie la liaison ça me remet fichier introuvable ... et du coup impossible de rompre la liaison ..

Je m'en doutais. C'est souvent ce qui arrive quand on fait des copier coller ou que l'on utilise plusieurs fichiers. une fois que l'on supprime un c'est patatra

Bon j'ai pu supprimer et j'ai changé le fichier dans mon post précédent. reprenez celui-là pour lests

Alors oui ca marche. il y a juste deux-trois petits points à modifier

1- Pour la validation dans le cas d'un matériel interne,

Dans la feuille "historique réservation":

- on rempli la colonne F avec la cellule de la colonne D de la feuille "inventaire" dont la cellule de la colonne C correspond à la Combobox2

- on rempli la colonne G avec la cellule de la colonne E de la feuille "inventaire" dont la cellule de la colonne C correspond à la Combobox2

Dans la feuille inventaire :

- la ligne remplie est celle d'après. Exemple : si Combobox2="IJI-06-NIV-1", la ligne se remplissant est celle de "IJI-06-NIV-1"

2 - Remplissage de la combobox 3 dans le cas d'un matériel externe :

les feuilles du fichiers de matériaux externes ne sont pas composées pareil. Dans la feuille Hydreka les BL sont à la colonne C, alors que dans la feuille IJINUS et autres les BL sont à la colonne B.

Je n'avais pas fais attention auparavant, mais il faudrait le modifier.

3- Pour la validation dans le cas d'un matériel externe :

IJINUS : Pas de problème

HYDREKA et autres : une erreur survient à la ligne suivante, mais je ne vois pas le souci. A part peut être le fait que ce soit le tableau 2 qui est précisé.

lig = OS.ListObjects("Tableau2").ListColumns(2).Range.Find(ComboBox3.Value, LookIn:=xlValues, lookat:=xlWhole).Row - 1
Rechercher des sujets similaires à "eviter doublons combobox"