Transfert de données

Y compris Power BI, Power Query et toute autre question en lien avec Excel
m
morlong
Nouveau venu
Nouveau venu
Messages : 2
Inscrit le : 3 septembre 2017
Version d'Excel : 2013

Message par morlong » 3 septembre 2017, 12:43

Bonjour,
j'ai besoin d'un coup de main pour automatiser le transfert de données entre 2 classeurs.
Je m'explique:
J'ai créé 4 classeurs (sur un réseau) pour 4 agences (Alpha, Beta, Charlie, Delta) qui contiennent le même style de données avec la même architecture:
_ 4 feuilles type de machines (A, B, C, D) dans lequels vous retrouvez un tableau regroupant une liste de machine (colonne 1: Les machines sont répertorié par numéro de parc et les numéros sont propres à chaque machine) et différentes infos pour chaque machine/ligne (mines, entretiens, contrôle...). Les feuilles sont verrouillées par mot de passe et j'ai créé des userform qui permettent de déverrouiller la feuille, proposer des cases de choix et à remplir qui remplissent automatiquement les cases correspondantes dans la ligne de la machine sélectionnée (menu déroulant), remplir les cases et reverrouiller la feuille.
_ 1 feuille par machine non verrouillé (fiche d'entretien) dans laquelle se trouve des informations sur la machine accessible uniquement par lien hypertexte (en cliquant sur le numéro de parc de la machine que l'on veux modifier) depuis les feuilles type.
le personnel peut accéder aux classeurs sur le réseau et ajouter des infos sur les machines.

Actuellement quand il y a transfert de machine d'une agence à l'autre, je dois copier manuellement la ligne machine de la feuille type (A, B, C, D) de l'agence source et je la colle dans la même feuille type de l'agence de destination à la suite des autres lignes puis je copie la feuille machine (complet) de l'agence source dans une nouvelle feuille de l'agence de destination. Puis j'efface la feuille machine et la ligne de la feuille type du classeur source.
Je voudrais automatiser tout ca à l'aide d'un nouveau classeur (et userform) dans lequel:
_ je sélectionne l'agence source (classeur source) par menu déroulant
_ je sélectionne l'agence destinataire (classeur destinataire) par menu déroulant
_ je sélectionne le type de machine (issue du classeur source) par menu déroulant
_ je sélectionne le numéro de parc (machine) issue de la feuille type du classeur source précédemment sélectionné par menu déroulant
_ un bouton pour valider le transfert

La mise en forme du userform ne pose pas de problème,
2017-09-03.png
c'est l'extraction des données pour remplir les menu déroulant et le copier coller qui me pose problème. je vois pas comment faire.

J'espère être assez clair pour que vous puissiez m'aider.
A
Andre13
Membre impliqué
Membre impliqué
Messages : 1'671
Appréciations reçues : 109
Inscrit le : 13 juillet 2017
Version d'Excel : 2007-2013

Message par Andre13 » 3 septembre 2017, 14:24

Bonjour


Exemple
A) pour créer une liste déroulante dans une cellule Excel avec des valeurs de ton choix:
==> Données/Validation des Données/Options/Autoriser liste et tu sélectionnes la plage correspondant à ta liste.

B) et/ou alors tu crées une ListBox via VBA (insertion/userform).
du genre :
Private Sub ListBox1_Initialize()
Dim TaListe As Variant
TaListe= Range("ta plage").Value
ListBox1.List() = TaListe
End Sub
---

l'USF1
-bouton de commande 1 à voir ici sur CommandButton1 et par clic
- ta listbox1 dans la propriété par 2 choix de sélection==> UserForm1.ListBox1.MultiSelect = 2
- i pour un compteur
- range à partir de la celulle A2 par incrémentation dans ta feuille NOMDETAFEUILLEEXCEL
Private Sub CommandButton1_Click() 
Dim element_select As Boolean
Dim nb_element, i As Integer
Dim DEST As Range
 
element_select = False
nb_element = Chercher.ListBox1.ListCount
With Worksheets("NOMDETAFEUILLEEXCEL")
    For i = 0 To nb_element - 1
        If Chercher.ListBox1.Selected(i) = True Then
            MsgBox "Sélection OK
            element_select = True
            Set DEST = IIf(.Range("A2").Value = "", .Range("A2"), .Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0))
            DEST.Value = ListBox1.List(i, 0)
            DEST.Offset(0, 3) = ListBox1.List(i, 2)
            DEST.Offset(0, 4) = ListBox1.List(i, 3)
            DEST.Offset(0, 5) = ListBox1.List(i, 4)
        End If
    Next
    If element_select = False Then
        MsgBox "vous n'avez rien selectionné"
    End If
End With
End Sub
--
Sans oublier le côté initialisation de ton USF1

cela doit ressemblé à peu près à cela


EDIT des exemples
excel/remplir-une-listbox-a-partir-d-un ... 69108.html

crdlt,
André
m
morlong
Nouveau venu
Nouveau venu
Messages : 2
Inscrit le : 3 septembre 2017
Version d'Excel : 2013

Message par morlong » 3 septembre 2017, 15:45

merci pour ton aide, je vais essayer
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message
  • Transfert de données
    par Kouadio » 20 décembre 2019, 16:50 » dans Excel - VBA
    11 Réponses
    205 Vues
    Dernier message par AFEH
    6 janvier 2020, 16:12
  • Transfert de données
    par bigari » 17 juin 2016, 19:35 » dans Excel - VBA
    2 Réponses
    110 Vues
    Dernier message par bigari
    17 juin 2016, 22:59
  • Transfert de données
    par bigari » 30 octobre 2017, 13:45 » dans Excel - VBA
    3 Réponses
    221 Vues
    Dernier message par patrick1957
    30 octobre 2017, 16:22
  • Transfert de données
    par Thomas25 » 28 mars 2017, 22:54 » dans Excel - VBA
    6 Réponses
    153 Vues
    Dernier message par Thomas25
    29 mars 2017, 22:29
  • Transfert de données
    par Tilkes » 26 juillet 2015, 15:47 » dans Excel - VBA
    8 Réponses
    200 Vues
    Dernier message par Force rouge
    26 juillet 2015, 20:55
  • Transfert données
    par Jess88 » 20 janvier 2020, 10:30 » dans Excel - VBA
    2 Réponses
    52 Vues
    Dernier message par Jess88
    24 janvier 2020, 12:26