Macro de déplacement

Bonjour à toutes & à tous,

Je viens vers vous car on m'a missionné sur un projet de faire un fichier Excel pour gérer des déménagements de personnes.

J'ai repris toute l'organisation de l'entreprise et j'ai commencé à travailler sur un formulaire de déménagement.

Mais je suis confronter à des problèmes, c'est pourquoi je viens vers vous.

Explications :

Il y a plusieurs services avec plusieurs personnes dans différents bureaux dans différents secteurs.

Ces personnes ont chacune un ordinateur, un numéro de téléphone ... et je passe d'autres caractéristiques.

Mon formulaire consiste à choisir une personne 1, les différentes informations la concernant s'affichent automatiquement, ça marche

Je clique sur un bouton de validation (OK) de la personne, ça marche avec un message d'information.

Puis je choisis une autre personne (qui est différente bien entendu), là je bloque car je ne sais pas comment faire pour que la personne 1 n'apparaisse pas dans la liste 2.

Bon si je passe ce problème, je choisis une personne 2, les différentes informations s'affichent aussi automatiquement, ça marche. Normal, c'est à peu près le même code que pour la personne 1.

Second problème : c'est que je ne sais pas comment écrire le code du bouton DEMENAGER pour que la personne 1 aille dans le bureau du secteur de la personne 2 avec son numéro de téléphone et son ordinateur. Et par conséquence, la personne 2 prend la place de la personne 1.

Beaucoup de blabla pour David (bureau 2, secteur Ouest, N° tél 330, ordinateur David330) prend la place de Brigitte (bureau 1, secteur Est, N° tél 612, ordinateur612), en fait c'est une inversion de place.

Je joins un condensé du fichier énorme avec un seul service, j'adapterai avec le reste.

Merci pour votre aide

133test-demenagement.zip (16.76 Ko)

Bonjour

Un essai

Bonjour à toutes & à tous,

Merci Banzai64, je réponds un peu tardivement car il fallait que j'adapte ton code à mon fichier global. Et cela marche très bien.

Par contre, pourrais-tu m'expliquer le code suivant car je ne comprends pas bien

If Me.Liste_Nom_1.ListIndex = -1 Then Exit Sub
    With Me.Liste_Nom_2
      .Clear
      For J = 2 To Ws.Range("B" & Rows.Count).End(xlUp).Row
        If Ws.Range("B" & J) <> Me.Liste_Nom_1 Then
          .AddItem Ws.Range("B" & J)
          .List(.ListCount - 1, 1) = J
        End If
      Next J
    End With

Et celui-ci

With Me.Liste_Nom_1
      For J = 2 To Range("B" & Rows.Count).End(xlUp).Row
        .AddItem Range("B" & J)
      Next J
    End With
    With Me.Liste_Nom_2
      .ColumnCount = 2
      .ColumnWidths = "-1;0"
    End With

Mais en tout cas ça fonctionne aussi chez moi

Un grand merci

Bonjour

Grosso modo

Le 1er code remplit la ComboBox "Liste_Nom_2" avec les noms lors d'une modification du ComboBox "Liste_Nom_1"

Avec deux particularités

  • - Si le nom est présent dans la ComboBox "Liste_Nom_1" il n'est pas repris dans la ComboBox "Liste_Nom_2"
  • - Le numéro de ligne du nom dans le tableau est notée dans une colonne masquée (car sa largeur est égale à 0) dans la ComboBox "Liste_Nom_1".
    Car comme dans cette ligne il va manquer un nom on ne peut pas se baser sur ListIndex (pour trouver les informations du nom dans la page) contrairement au ComboBox "Liste_Nom_1"

La 2ème macro

Remplit la ComboBox "Liste_Nom_1" avec les noms de la page

Initialise la ComboBox "Liste_Nom_2" : Nombre de colonnes et dimensions de ces colonnes

Rechercher des sujets similaires à "macro deplacement"