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

Macros et VBA Excel Discussion :

Transformer un tableau a entrée multiple en base de données exploitable [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Novembre 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Novembre 2021
    Messages : 4
    Par défaut Transformer un tableau a entrée multiple en base de données exploitable
    Bonjour,

    Première bouteille à la mer, je ne sais pas si je peux avoir de l'aide sur ce type de demande. Je reçois mensuellement un compte rendu comme en copie et je voudrais le transformer en données brut pour suivre l'évolution sur un power BI.
    J'aimerai donc créer une feuille et reprendre les informations et je suis bloqué rapidement par mon niveau sur Excel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Bouton2_Cliquer()
     
        'ajouter une nouvelle Feuille à la fin du Classeur, la nommer et créer les colonnes
     
        Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = "Table de donnée"
     
        Range("1:1").HorizontalAlignment = xlCenter
        Cells(1, 1).Value = "Date"
        Cells(1, 2).Value = "Type"
        Cells(1, 3).Value = "Receiver"
        Cells(1, 4).Value = "Pays"
        Cells(1, 5).Value = "Hébergement"
        Cells(1, 6).Value = "Nombre"
    idéalement cette deuxième feuille ressemblerait à l'onglet "cible" et j'aurais bien la différence entre la valeur "0" et "null" car mon 0 correspond a une création en cours.


    Bonne journée à vous et merci a ceux qui prendront le temps de me lire
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2021
    Messages
    334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2021
    Messages : 334
    Par défaut
    Bonjour,

    ton compte rendu est sous quelle forme ? (je n'ouvre pas les PJ)

    Si c'est un tableau tu peux faire une importation de données par "dossier" avec power query, ca va compiler tous tes fichiers dans un tableau.

    Tu peux egalement le faire avec des fichiers CSV.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Novembre 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Novembre 2021
    Messages : 4
    Par défaut
    Bonjour,

    En gros cela ressemble à ça :

    Nom : rapport recu.PNG
Affichages : 323
Taille : 23,3 Ko

    et la cible c'est ça

    Nom : cible.PNG
Affichages : 226
Taille : 15,9 Ko

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    Une réponse dans une "Premiere bouteille a la mer" je propose :
    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
    Sub testt()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Dim F1 As Worksheet
    Dim F2 As Worksheet
    Dim lig As Long
    Set F1 = Sheets("rapport mensuel")
    Set F2 = Sheets("cible")
    lig = F2.Cells(Rows.Count, 1).End(xlUp).Row + 1
     
    Dim i As Long
    Dim C As Long
    Set d = CreateObject("Scripting.Dictionary")
        '**********************************************************
        TblBD = F1.Range("A4:F" & F1.Range("D" & Rows.Count).End(xlUp).Row)
     
        For i = 1 To UBound(TblBD)
        For C = 3 To 6
             clé = F1.Cells(1, 1) & "|" & TblBD(i, 1) & "|" & TblBD(i, 2) & "|" & F1.Cells(3, C) & "|" & F1.Cells(2, 3)
             d(clé) = d(clé) + CDbl(TblBD(i, C))
        Next C
        Next i
        F2.Range("A" & lig).Resize(d.Count) = Application.Transpose(d.keys)
     
        F2.Range("A" & lig).Resize(d.Count).TextToColumns Other:=1, DataType:=xlDelimited, OtherChar:="|"
        F2.Range("F" & lig).Resize(d.Count) = Application.Transpose(d.items)
     Application.DisplayAlerts = True
     Application.ScreenUpdating = True
    End Sub
    Fichiers attachés Fichiers attachés

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Novembre 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Novembre 2021
    Messages : 4
    Par défaut
    Incroyable votre aide, merci !
    J'ai renseigné votre macro et c'est exactement ce que je souhaite, il manque lorsque je lance la macro cependant les données pour deux type d'hébergements cloud et ECC, encore merci !

    Nom : Capture.PNG
Affichages : 220
Taille : 64,6 Ko

  6. #6
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    je ne suis qu'un bricoleur donc testez et re testez
    j'ai fait en 3 macro alors normalement c'est faisable avec un seul mais c'est le bricolage d'un autodidacte
    testez et dite si ça te convient
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. différence entre exporter une base de données ou la détacher
    Par boumbo73 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/03/2008, 11h54
  2. [MySQL] Récupération de données entre fichiers et base de données
    Par PascR dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 21/12/2007, 10h44
  3. [SQL] Insertion multiple dans base de donnée
    Par leroidje dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/08/2007, 13h24
  4. Dernière entrée dans une base de données
    Par ploxien dans le forum JDBC
    Réponses: 1
    Dernier message: 10/05/2006, 14h30
  5. [MySQL] Suppresion d'une entrée dans une base de donnée.
    Par bullrot dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 03/03/2006, 19h33

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