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 :

Macro pour création de nouveau fichier au format CSV


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Dessinateur métreur en bâtiment
    Inscrit en
    Mars 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Dessinateur métreur en bâtiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2018
    Messages : 2
    Par défaut Macro pour création de nouveau fichier au format CSV
    Bonjour à tous,
    ceci étant mon premier post sur ce forum, je tiens à dire à ceux qui n'aurait pas deviné en lisant mes codes VBA probablement affreux que je débute en et que la seule utilisation que j'en ai est à titre professionnel et extrêmement occasionnelle.

    Pour commencer je souhaite expliquer le contexte qui me pousse à demander de l'aide :

    J'ai acheté un logiciel de devis de chiffrage spécialisé dans la charpente métallique puisque c'est mon métier (bravo).

    Ce logiciel permet d'intégrer des métrés au devis. métré qu'il faut remplir ligne par ligne avec la désignation produit la quantité et la dimension des produits (ici essentiellement des profilés de construction en acier) ce qui est assez long et pénible surtout quand l'entreprise à intégrer des process de fabrication qui font qu'on utilise toujours les mêmes profilés pour certaines pièces.

    Par chance, le monsieur qui à créé le logiciel à permis l'import de listes au format CSV (qu'on peut faire sous excel) qui permet d'éviter de tout remplir ligne par ligne.

    J'ai donc créé un fichier excel qui me donne cette liste. il se compose d'une feuille ou on rentre les caractéristiques et dimension du bâtiment et dans une autre on obtient le métré (quantités, profil, longueurs).

    L'ennui c'est que dans cette liste, j'ai beaucoup de lignes = 0 (lignes non utilisée), je me suis dit qu'en les masquant à l'aide d'un bouton de commande dont voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CommandButton1_Click()
    Dim LastLig As Long, i As Long
     
    With sheets("Formulaire")
        LastLig = .Cells(.Rows.Count, "C").End(xlUp).Row
        For i = 1 To LastLig
            If .Range("C" & i).Text = "0" Then .Rows(i).Hidden = True
            Next i
    End With
    End Sub
    cela aurait résolu le problème, l'ennui c'est que masquer ces lignes ne change rien pour l'export, elles apparaissent quand même dans le logiciel de devis.

    Je suis donc reparti du même code en le modifiant pour qu'il supprime les lignes =0 en colonne C. En dehors du fait que c'est complètement barbare et que ça m'oblige à garder un fichier source, ça ne fonctionnait pas non plus car la colonne C à des cellules liées à d'autre cellules de cette même colonne ce qui fait qu'avec la suppression certaines cellules n'étaient plus =0 mais à #REF

    Je sèche donc un peu.

    Si mon niveau était meilleur l'idéal aurait été un bouton de commande qui enregistre directement un fichier CSV de toutes les lignes <0 mais c'est de trop haut niveau pour moi.

    Donc toujours en repartant de mon code initial, j'ai tenté de faire un copier des lignes <0 en colonne C pour coller dans une feuille vierge à coté mais mon code ne fonctionne pas et je ne comprend pas pourquoi mais comme c'est du raboutage de codes différents et que j'ai parfois du mal à comprendre ce que je fait ça ne m'étonne pas vraiment.

    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
    Private Sub CommandButton1_Click()
     
    Dim LastLig As Long, i As Long
     
    With Sheets("Métré")
        LastLig = .Cells(.Rows.Count, "C").End(xlUp).Row
     
        For i = 1 To LastLig
            If .Range("C" & i) < 0 Then .Rows(i).Copy
     
        With Sheets("Export CSV").Range("A1").Select
        Selection.Insert Shift:=xlDown
        End With
            Next i
    End With
     
    End Sub
    Si quelqu'un peut m'expliquer ce qu'il manque. D'après le débogueur, la ligne qui pose problème et la sélection de la première ligne de la 2ème feuille mais je ne comprend pas.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Regarde du coté des filtres actifs ou filtres élaborés!

    ensuite tu pourras adapter ce code! https://www.developpez.net/forums/d1.../#post10064531

  3. #3
    Candidat au Club
    Homme Profil pro
    Dessinateur métreur en bâtiment
    Inscrit en
    Mars 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Dessinateur métreur en bâtiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2018
    Messages : 2
    Par défaut
    merci dysorthographie,
    Je n'avais pas pensé au filtrage et ça fonctionne très bien.
    Pareil pour ta macro d'enregistrement en CSV que j'ai légèrement adapté pour les besoin du logiciel (séparateurs en ; au lieu des | ) et que j'appel avec mon fameux bouton.
    Ca fonctionne, C'est formidable!

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 18/10/2016, 11h00
  2. [XL-2007] Macro pour création de fichier selon critères
    Par ExcelLiod dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 06/01/2014, 11h17
  3. Macro pour créer un nouveau fichier avec de nouvelles macros
    Par yodu29 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 24/01/2008, 14h21
  4. Création d'un fichier au format unix
    Par spirodeau dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 16/11/2006, 16h55
  5. Création de nouveau fichiers entete/source
    Par valerossi46 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 01/08/2006, 10h12

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