IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Transférer les données de plusieurs excel vers un seul [XL-365]


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    juillet 2020
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2020
    Messages : 24
    Points : 17
    Points
    17
    Par défaut Transférer les données de plusieurs excel vers un seul
    Bonjour à tous,

    Je vous présente mon problème :
    J'ai une visseuse automatique sur une ligne d'assemblage qui enregistre tous les couples de vissage lorsqu'elle est en fonctionnement.
    Si sur une pièce X je dois effectuer 20 vissages avec cette visseuse, je vais me retrouver avec 20 lignes excel.
    Le problème est que, si j'ai un OF de 200 pièces, la visseuse ne peut me ressortir qu'un fichier excel par pièce... Donc pour cet OF de 200 pièces, je vais avoir 200 fichiers excel. Autant vous dire que faire un copier coller de chacun des fichiers pour les mettre dans le même fichier ça prend beaucoup trop de temps... Je ne peux donc pas exploiter ces données pour le moment.
    Donc mon objectif serait de créer une maccro qui me dise : dans le dossier "OFXX", ouvrir le fichier excel "pièce 1", copier les données, et les coller sur le fichier "extraction OFXX". Ensuite faire pareil avec la pièce 2 et coller les données à la suite de celles de la pièce 1. Et ainsi de suite. Cela me permettra de sortir des stats sur les couples de vissages enregistrés par la visseuse.

    Je voulais voir avec vous si ce projet est réalisable avec des macros VBA.
    Je suis preneur pour toutes propositions, car actuellement je n'ai aucune idée par où commencer, et je ne trouve rien sur internet qui puisse m'aider...
    Si vous avez besoin de plus d'informations, n'hésitez pas

    Voici comment se présente les données de vissage d'une pièce : 069594830_001.xlsx

    Merci beaucoup pour votre aide.

    Le ptit nouveau

  2. #2
    Membre confirmé
    Homme Profil pro
    ingénieur
    Inscrit en
    mars 2015
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : mars 2015
    Messages : 187
    Points : 513
    Points
    513
    Par défaut
    Bonjour
    Vous travaillez avec une version d'Excel récente, vous disposez donc d'un outil rapide et performant pour traiter vos 200 fichiers "Power Query" : menu "données/obtenir de données/à partir d'un fichier/à partir d'un dossier"
    Vous définissez les transformations à effectuer dans le 1er fichier et Excel concatène tous les fichiers du dossier en même temps.
    Cherchez "Power Query" dans votre navigateur favori et lisez les tutos de Pierre Fauconnier sur ce site, VBA est inutile pour répondre à votre besoin.

    Stéphane

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    juillet 2020
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2020
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    Bonjour Raccourcix,

    Je ne connaissais pas cet outil "Power Query" sur Excel, et je dois avouer qu'il est vraiment très intéressant.
    Après quelques recherches sur internet, j'ai facilement pu combiner tous mes fichiers Excel en un seul.

    Merci beaucoup pour votre aide !!

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    juillet 2020
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2020
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    Je me permet de ré-ouvrir cette discussion, car je me retrouve face à un nouveau problème.

    Grâce à l'outil Power Query, j'arrive maintenant à récupérer facilement tous les fichiers excel d'un OF. Pour rappel, 1 OF = 1 dossier, et dans le dossier, 1 fichier excel = 1 piece. Donc si l'OF XXXX a 500 pieces, j'aurais 500 fichiers dans ce dossier.
    Maintenant, je voudrais faire une macro qui :
    - Me demande quel OF je veux traiter ==> je rentre un numéro d'OF (ex. l'OF "12345678").
    - Fasse automatiquement la compilation de tous mes fichiers excel de l'OF précédemment renseigné.

    Pour faire automatiquement la compilation des fichiers, la je n'ai pas trop de soucis, j'ai simplement utilisé l'enregistreur de macro.
    Par contre la ou je bloque, c'est quand je veux que ma macro me demande quel OF je veux analyser, et qu'ensuite, apres avoir renseigne l'OF, que la macro aille dans le bon dossier.
    J'ai commencé à coder quelque chose; mais ca ne fonctionne pas..

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    Option Explicit
     
    Sub Saisie_OF()
     
    Dim NumOF As Long
        NumOF = Application.InputBox(Prompt:="Saisir le numéro de l'OF", Title:="Numéro de L'of", Type:=1)
        Extract_OF_Visseuses NumOF
     
    End Sub
     
     
    Sub Extract_OF_Visseuses(Numero_OF As Long)
     
    '
    ' Extraction automatique des OF
    '
     
    '
        ActiveWorkbook.Queries.Add Name:=Numero_OF, Formula:= _
            "let" & Chr(13) & "" & Chr(10) & "    Source = Folder.Files(""R:\RET3K21R01\Industrialisation\Vissage\vissage A\R43\Numero_OF"")," & Chr(13) & "" & Chr(10) & "    #""Autres colonnes supprimées"" = Table.SelectColumns(Source,{""Content""})," & Chr(13) & "" & Chr(10) & "    #""Fichiers masqués filtrés1"" = Table.SelectRows(#""Autres colonnes supprimées"", each [Attributes]?[Hidden]? <> true)," & Chr(13) & "" & Chr(10) & "    #""Appeler une fonction personnalisée1"" = Table.AddCol" & _
            "umn(#""Fichiers masqués filtrés1"", ""Transformer le fichier"", each #""Transformer le fichier""([Content]))," & Chr(13) & "" & Chr(10) & "    #""Autres colonnes supprimées1"" = Table.SelectColumns(#""Appeler une fonction personnalisée1"", {""Transformer le fichier""})," & Chr(13) & "" & Chr(10) & "    #""Colonne de tables développée1"" = Table.ExpandTableColumn(#""Autres colonnes supprimées1"", ""Transformer le fichier" & _
            """, Table.ColumnNames(#""Transformer le fichier""(#""Exemple de fichier"")))," & Chr(13) & "" & Chr(10) & "    #""Type modifié"" = Table.TransformColumnTypes(#""Colonne de tables développée1"",{{""Column1"", type text}})," & Chr(13) & "" & Chr(10) & "    #""Lignes filtrées"" = Table.SelectRows(#""Type modifié"", each [Column1] <> ""N°;Br;Cy;Ph;Date;Heure;C(Nm);A(dg);CR;"")," & Chr(13) & "" & Chr(10) & "    #""Valeur remplacée"" = Table.ReplaceValue" & _
            "(#""Lignes filtrées"",""#(0000)"","""",Replacer.ReplaceText,{""Column1""})," & Chr(13) & "" & Chr(10) & "    #""Lignes filtrées1"" = Table.SelectRows(#""Valeur remplacée"", each [Column1] <> """")," & Chr(13) & "" & Chr(10) & "    #""Fractionner la colonne par délimiteur"" = Table.SplitColumn(#""Lignes filtrées1"", ""Column1"", Splitter.SplitTextByDelimiter("";"", QuoteStyle.Csv), {""Column1.1"", ""Column1.2"", ""Column1" & _
            ".3"", ""Column1.4"", ""Column1.5"", ""Column1.6"", ""Column1.7"", ""Column1.8"", ""Column1.9"", ""Column1.10""})," & Chr(13) & "" & Chr(10) & "    #""Type modifié1"" = Table.TransformColumnTypes(#""Fractionner la colonne par délimiteur"",{{""Column1.1"", type text}, {""Column1.2"", Int64.Type}, {""Column1.3"", Int64.Type}, {""Column1.4"", Int64.Type}, {""Column1.5"", type date}, {""Column1.6""" & _
            ", type time}, {""Column1.7"", type text}, {""Column1.8"", type text}, {""Column1.9"", type text}, {""Column1.10"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Type modifié1"""
        ActiveWorkbook.Queries.Add Name:="Exemple de fichier", Formula:= _
            "let" & Chr(13) & "" & Chr(10) & "    Source = Folder.Files(""R:\RET3K21R01\Industrialisation\Vissage\vissage A\R43\Numero_OF"")," & Chr(13) & "" & Chr(10) & "    #""Autres colonnes supprimées"" = Table.SelectColumns(Source,{""Content""})," & Chr(13) & "" & Chr(10) & "    Navigation1 = #""Autres colonnes supprimées""{0}[Content]" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    Navigation1"
        ActiveWorkbook.Queries.Add Name:="Paramètre1", Formula:= _
            "#""Exemple de fichier"" meta [IsParameterQuery=true, BinaryIdentifier=#""Exemple de fichier"", Type=""Binary"", IsParameterQueryRequired=true]"
        ActiveWorkbook.Queries.Add Name:="Transformer l'exemple de fichier", Formula _
            := _
            "let" & Chr(13) & "" & Chr(10) & "    Source = Csv.Document(Paramètre1,[Delimiter=""#(tab)"", Columns=1, Encoding=1252])" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    Source"
        ActiveWorkbook.Queries.Add Name:="Transformer le fichier", Formula:= _
            "let" & Chr(13) & "" & Chr(10) & "    Source = (Paramètre1) => let" & Chr(13) & "" & Chr(10) & "        Source = Csv.Document(Paramètre1,[Delimiter=""#(tab)"", Columns=1, Encoding=1252])" & Chr(13) & "" & Chr(10) & "    in" & Chr(13) & "" & Chr(10) & "        Source" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    Source"
        ActiveWorkbook.Worksheets.Add
        With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
            "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=Numero_OF;Extended Properties=""""" _
            , Destination:=Range("$A$1")).QueryTable
            .CommandType = xlCmdSql
            .CommandText = Array("SELECT * FROM [Numero_OF]")
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .PreserveColumnInfo = True
            .ListObject.DisplayName = "_Numero_OF"
            .Refresh BackgroundQuery:=False
        End With
        Workbooks("Classeur1").Connections.Add2 "Requête*-*Exemple de fichier", _
            "Connexion à la requête «*Exemple de fichier*» dans le classeur.", _
            "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""Exemple de fichier"";Extended Properties=""""" _
            , "SELECT * FROM [Exemple de fichier]", 2
        Workbooks("Classeur1").Connections.Add2 "Requête*-*Paramètre1", _
            "Connexion à la requête «*Paramètre1*» dans le classeur.", _
            "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=Paramètre1;Extended Properties=""""" _
            , "SELECT * FROM [Paramètre1]", 2
        Workbooks("Classeur1").Connections.Add2 _
            "Requête*-*Transformer l'exemple de fichier", _
            "Connexion à la requête «*Transformer l'exemple de fichier*» dans le classeur." _
            , _
            "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""Transformer l'exemple de fichier"";Extended Properties=""""" _
            , "SELECT * FROM [Transformer l'exemple de fichier]", 2
        Workbooks("Classeur1").Connections.Add2 "Requête*-*Transformer le fichier", _
            "Connexion à la requête «*Transformer le fichier*» dans le classeur.", _
            "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""Transformer le fichier"";Extended Properties=""""" _
            , "SELECT * FROM [Transformer le fichier]", 2
    End Sub
    Si vous avez des idées de pourquoi ça ne fonctionne pas, je suis preneur
    Merci !!

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    18 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 18 315
    Points : 53 208
    Points
    53 208
    Billets dans le blog
    128
    Par défaut
    Salut.

    Pas convaincu qu'il faille passer par VBA pour créer la requête Power Query. Si les fichiers sont normés, tu crées la requête avec Power Query DANS Excel sans VBA. Tu peux utiliser dans Power Query une cellule nommée qui contient le numéro de l'OF et Power Query recomposera le chemin d'accès aux fichiers. Dans ce billet, j'explique comment créer une fonction qui récupère le chemin d'accès à un fichier, que l'on peut bien entendu étendre à un dossier. Tu peux alors déterminer le dossier en recomposant son chemin dans Power Query sur base d'une racine commune à tous tes dossiers d'OF.

    Dès lors, le problème "Power Query" étant réglé, il reste à déterminer comment tu pourrais sélectionner l'OF (une liste des OF existants dans Excel, un scan d'un dossier pour retrouver les dossiers numérotés, ...)

    A toi de nous dire par quoi pourrait être alimentée la liste des OF dans laquelle opérer ton choix. Un nombre approximatif d'OF aiderait, ainsi qu'un détail de la nomenclature si le nombre est élevé et que le numéro est structuré.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Membre à l'essai
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    juillet 2020
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2020
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    Bonjour Pierre,

    Je commence de plus en plus à apprécier cet outil Power Query !
    Ton billet est très intéressant, et très bien expliqué, merci beaucoup.

    Cependant, j'aurais juste une dernière petite requête.... Après avoir suivi ton 3ème billet, je peux maintenant facilement modifier mon chemin d'accès dans l'environnement Excel uniquement en remplaçant un numéro d'OF par un autre dans ma cellule Chemin. Cependant, est-il possible d'afficher uniquement le numéro d'OF au lieu de tout le chemin d'accès ?
    Par exemple, au lieu d'avoir "R:\RET3K21R01\Industrialisation\Vissage\vissage A\R43\69040685" dans ma cellule Chemin, je voudrais uniquement "69040685". Dans ce cas, la personne qui voudra récolter les données de vissage; aura uniquement à insérer le numéro d'OF, et ça limitera les potentielles erreurs de saisie ...

    Ensuite pour sélectionner l'OF, nous avons actuellement un fichier Excel avec la liste tous les OF qui sont terminés. Il sera alors facile de remplacer mon chemin d'accès par l'OF de notre choix.
    La question serait maintenant de voir comment "sauvegarder" les données de chacun de nos OF. Il faut savoir que nous avons environ 1 OF de 432 pièces chaque jour, et que 1 pièce possède normalement 33 vissages (ça va dépendre si la pièce a été rebutée après le Xème vissage, ou s'il y a eu des reprises). Je pensais donc faire une base de données en faisant uniquement un transfert des données extraites de Power Query dans une base Access. C'est la seule idée que j'ai pour l'instant. Je suis totalement débutant sur ce terrain, il faut donc que je me renseigne davantage. Si jamais il y a une idée plus optimisée, je suis preneur

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    18 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 18 315
    Points : 53 208
    Points
    53 208
    Billets dans le blog
    128
    Par défaut
    Salut.

    Tu as plusieurs solutions:
    1. mettre le chemin en dur dans la fonction PQ et concaténer comme en Excel avec le &;
    2. mieux, nommer une autre cellule dans Excel avec le chemin sans l'OF, récupérer les deux valeurs dans FQ et les concaténer;
    3. tu pourrais aussi, mais c'est peut-être moins fun côté Excel pour l'utilisateur, utiliser un tableau de paramètres et récupérer les valeurs à la volée dans Power Query (voir ce billet);
      tu peux faire un mix des 2 et 3...



    Par contre, pour ce qui est de sauvegarder les données, je n'ai pas très bien compris ce que tu souhaites réaliser. On pourrait déjà transférer les données récupérées de Power Query dans un tableau structuré en les ajoutant à la fin ce celui-ci. Ca dépend du volume mais tu as 1048576 lignes à ta disposition dans une feuille Excel.

    On peut aussi pérenniser cela dans un Access. J'ai modélisé les interactions entre Excel et Access en VBA dans une suite de billets dont voici la discussion d'amorce.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Membre à l'essai
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    juillet 2020
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2020
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    Hello,

    Le chemin en dur avec le & fonctionne très bien et est facile à mettre en place. Top !

    Quand je parlais de "sauvegarder les données", je voulais dire "garder un historique des résultats de vissage par OF". Par la suite, le but est d'analyser les données sur 1 semaine/1 mois/... et voir quels vissages fonctionnent plus ou moins bien, récolter les couples de vissage, ect. Désolé si je m'étais mal exprimé.
    Maintenant, quand tu dis "On pourrait déjà transférer les données récupérées de Power Query dans un tableau structuré", que veux-tu dire par "tableau structuré" ?

    Les 1048576 lignes d'une feuille Excel seront atteintes en quelques mois, Access me semble donc le meilleur outil. Je vais de suite regarder plus en détail tes billets !

    Encore une fois, merci ton aide !

  9. #9
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    18 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 18 315
    Points : 53 208
    Points
    53 208
    Billets dans le blog
    128
    Par défaut
    Citation Envoyé par Le ptit nouveau Voir le message
    [...]que veux-tu dire par "tableau structuré" ?[...]
    Voici mon tuto complet sur les tableaux structurés. Je dois encore finaliser celui relatif aux tableaux structurés en VBA
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #10
    Membre à l'essai
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    juillet 2020
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2020
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    Top merci.
    Je regarde tout ça, et je reviens vers toi si jamais j'ai encore des questions (mais sûrement pas avant la semaine prochaine ).
    En tout cas, les tutos sont hyper complets, c'est génial pour apprendre !

  11. #11
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    18 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 18 315
    Points : 53 208
    Points
    53 208
    Billets dans le blog
    128
    Par défaut
    Pour l'exemple... Si tu souhaitais variabiliser ton chemin d'accès, tu pourrais utiliser deux cellules nommées. Ici, j'ai utilisé Chemin et OF comme noms de cellule. Pour parer les problèmes d'un \ manquant et d'un OF éventuellement numérique, j'ai élaboré une fonction qui teste si Chemin se termine par \ ou pas et une conversion systématique de l'OF en texte, car a contrario d'Excel, Power Query ne réalise pas de transtypage automatique, autrement dit de transformation d'une valeur d'un type (ici OF numérique) en une valeur d'un autre type (ici texte pour pouvoir concaténer les valeurs avec &).

    Code Power Query : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    let
        Source = () as text =>
        let    
            Chemin = Table.FirstValue(Excel.CurrentWorkbook(){[Name="Chemin"]}[Content]),
            CheminOk = if Text.End(Chemin,1) = "\" then Chemin else Chemin & "\",
            OF = Text.From(Table.FirstValue(Excel.CurrentWorkbook(){[Name="OF"]}[Content])),
            Complet = CheminOk & OF
        in
            Complet
    in
        Source
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  12. #12
    Membre à l'essai
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    juillet 2020
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2020
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    Ce qui permet de changer rapidement le chemin d'accès aux OF, de changer d'OF, et de s'assurer qu'il n'y ait pas d'erreur de saisie...
    C'est génial, merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Problèmes avec Loop- copier une plage de donnée de plusieurs excels vers un seul
    Par S.Mag dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 08/06/2017, 11h34
  2. Transférer les donnés de plusieurs tableaux sous un seul tableur
    Par mathleroyal dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/02/2013, 14h47
  3. Réponses: 3
    Dernier message: 01/08/2011, 14h01
  4. [VB.NET] Transférer les données d'un dataset vers excel ??
    Par beegees dans le forum Windows Forms
    Réponses: 3
    Dernier message: 11/06/2006, 19h59
  5. Transférer les données d'une JTable vers une autre
    Par rollbich dans le forum Composants
    Réponses: 4
    Dernier message: 20/01/2006, 00h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo