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

VBScript Discussion :

Problème de duplication de ligne avec modification de celle-ci


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2014
    Messages : 3
    Par défaut Problème de duplication de ligne avec modification de celle-ci
    Bonjour,

    Étant novice en programmation VB, je me tourne vers vous pour résoudre mon problème d'ignorance.

    J'ai effectué des extractions de fichier csv en powershell d'une base sql, puis des mises en forme en tableaux croisés dynamique par macro excel.
    Jusque là tout va bien et fonctionne sans soucis.

    Sauf pour deux fichiers qui ne sont pas "formaté" de la bonne façon pour faire un reporting correct.

    Plutôt qu'un long discours voici les informations :

    Fichier obtenu par extraction (exemple) :

    machine,Date,Prenom Nom,Site
    Serveur1,08-11-2014,John Doe,Paris
    Serveur2,09-11-2014,Bob Marley,Bordeaux
    Serveur1 Serveur2 serveur3,10-11-2014,John Doe,Paris
    Serveur1 serveurx,11-11-2014,Leititia Casta,Marseille
    Serveur1,08-11-2014,super dev,Paris

    Mais pour présenter mes tableaux de reporting automatisés je dois avoir comme fichier :

    machine,Date,Prenom Nom,Site
    Serveur1,08-11-2014,John Doe,Paris
    Serveur2,09-11-2014,Bob Marley,Bordeaux
    Serveur1,10-11-2014,John Doe,Paris
    Serveur2,10-11-2014,John Doe,Paris
    serveur3,10-11-2014,John Doe,Paris
    Serveur1,11-11-2014,Leititia Casta,Marseille
    serveurx,11-11-2014,Leititia Casta,Marseille
    Serveur1,08-11-2014,super dev,Paris

    J'ai essayé depuis l'extraction en powershell mais la zone machine extraite dans la base SQL pour avoir cette information ne le permet pas. J'ai essayé avec une macro excel sans plus de succès.

    J'ai passé 2 jours à chercher sur le web et à faire des tests en VB mais je me rend compte que je suis plus que débutant. Pour la méthode je pense être au point, mais pour le réaliser je suis un cancre. Je pense que la solution est simple et devant mon nez.

    Merci de votre aide

    cdlt

    Sébastien

  2. #2
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Bonjour,

    Ca devrait t'aider :

    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
     
    Dim lig(5)
    lig(1) = "Serveur1,08-11-2014,John Doe,Paris"
    lig(2) = "Serveur2,09-11-2014,Bob Marley,Bordeaux"
    lig(3) = "Serveur1 Serveur2 serveur3,10-11-2014,John Doe,Paris"
    lig(4) = "Serveur1 serveurx,11-11-2014,Leititia Casta,Marseille"
    lig(5) = "Serveur1,08-11-2014,super dev,Paris"
     
    For i = 1 To 5
        colonnes = Split(lig(i), ",")
        Serveurs = Split(colonnes(0), " ")
        If UBound(Serveurs) > 0 Then
            For j = 0 To UBound(Serveurs)
                msg = msg & Serveurs(j) & ", " & colonnes(1) & ", " & colonnes(2) & colonnes(3) & Chr(13)
            Next
        Else
            msg = msg & lig(i) & Chr(13)
        End If
    Next
    msgbox msg

  3. #3
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut sbastyen et pc75
    Ligne 14
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                msg = msg & Serveurs(j) & ", " & colonnes(1) & ", " & colonnes(2) & "," & colonnes(3) & Chr(13)
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2014
    Messages : 3
    Par défaut Merci de votre aide
    Un grand merci pour vos réponses. Je n'ai pas pu tester vos modifications.

    Après mes réunions, je les tests et vous tiens informé au plus vite.

    Cordialement

    Sbastyen

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2014
    Messages : 3
    Par défaut Resolution du problème
    Bonjour,

    Je n'ai pas réussi en VB à faire ce que je voulait.

    J'ai pris la bonne vieille méthode du batch.

    Voici ce que cela donne :

    Créer un batch avec les commandes ci-dessous puis lancer le batch avec en argument le nom du fichier à traiter.

    Commandes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @echo off
    setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
    set nf=%~n1_BIS.csv.csv
    ::del %nf%
    >%nf% echo.
    FOR /F "skip=1 eol=; tokens=1,2* delims=," %%i in (%1) do set servernames=%%~i&&set reste=%%j, %%k&&call :action1
    @echo on
    @echo Creation du fichier %nf%
    @type %nf%
    goto :eof
    :action1
    ::echo %servernames%, %reste%
    FOR %%a in (%servernames%) do echo %%a, %reste:"=%>>%nf%
    exit/B
    Cela fonctionne sans problème.

    Encore merci pour votre aide

    Cordialement

    Sbastyen

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

Discussions similaires

  1. Problème lorsque retour à la ligne avec grep
    Par carpe001 dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 22/06/2015, 10h28
  2. Problème de saut de ligne avec un echo d'un output d'une commande
    Par death_style dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 11/04/2012, 14h38
  3. [XL-2003] VBA - Problème d'insertion de ligne avec copie de formules
    Par oracle7556 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 04/06/2010, 15h22
  4. [SQL] Duplication de lignes avec un ID différent
    Par neuropathie dans le forum Langage SQL
    Réponses: 4
    Dernier message: 19/12/2007, 15h59
  5. Copier Coller une ligne d'une table avec modif ?
    Par nolan76 dans le forum Requêtes
    Réponses: 4
    Dernier message: 04/03/2004, 16h34

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