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 :

Copie des lignes >0 et enregistrement sous un format donné [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Chargé de projet SI-Logistique
    Inscrit en
    Août 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé de projet SI-Logistique
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2019
    Messages : 8
    Par défaut Copie des lignes >0 et enregistrement sous un format donné
    Bonjour Messieurs, bonjour Mesdames,

    Je me permet de vous exposer un problème pour lequel je n'ai pas à ce jour obtenu d'aide.

    Je souhaite faciliter le travail de nos ADV et pour cela j'ai besoin de votre aide.
    A ce jour, elles soumettent au client un fichier excel basique que vous pourrez trouver en PJ, qui le retournent pour une intégration manuelle (onglet "Bon de commande").

    J'aimerais donc modifier ce fichier pour y intégrer un macro qui nous permettent "d'exporter" vers un autre onglet très simple ("Saisie TXT").
    Pour se faire, je souhaiterais qu'à l'appui sur le bouton "convertir le bon de commande", les lignes non nulle s'incrémente dans l'onglet "Saisie TXT" en respectant le format de celui-ci.

    Ensuite, je souhaiterais qu'à l'appuie sur le bouton "Exporter au format TXT_TAB pou import C…...." de l'onglet "Saisie TXT" Excel enregistre uniquement l'onglet "Saisie TXT" au format "texte (séparateur tabulation)" dans un répertoire donné.

    Je vous liste ci-dessous mes difficultés :
    - Je ne sais comment "rédiger" ma macro de façon à ne prendre en compte que les lignes vides. En gros, avec une recherche V j'aurais des lignes vides que je souhaite éviter.
    - Je ne connais absolument pas les commande nécessaires à l'enregistrement d'un onglet dans un format particulier.

    Je suis à l'écoute de toutes réponses, qu'on me mette sur le chemin ou bien pour une solution clé en main

    Je vous remercie par avance de l'aide que vous pourrez m'apporter ou, a défaut, de m'avoir lu.

    Corentin
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Le fichier
    Pièce jointe 575710

    Le code utilisé (pour voir le code, faire ALT + F11)
    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
    Sub Recopie_Valeurs()
        Dim f1 As Worksheet, f2 As Worksheet
        Dim DerLig_f1 As Long, DerLig_f2 As Long
        Dim i As Long
        Application.ScreenUpdating = False
        Set f1 = Sheets("Bon de commande")
        Set f2 = Sheets("Saisie TXT")
        DerLig_f1 = f1.Range("D" & Rows.Count).End(xlUp).Row
        DerLig_f2 = f2.Range("A" & Rows.Count).End(xlUp).Row
        For i = 3 To DerLig_f1
            If f1.Cells(i, "G") <> 0 Then
                f2.Cells(DerLig_f2 + 1, "A") = f1.Cells(i, "D") 'Référence
                f2.Cells(DerLig_f2 + 1, "B") = f1.Cells(i, "G") 'Quantité
                f2.Cells(DerLig_f2 + 1, "O") = f1.Cells(i, "I") 'Contremarque
                DerLig_f2 = DerLig_f2 + 1
            End If
        Next i
        f2.Select
        Set f1 = Nothing
        Set f2 = Nothing
    End Sub
     
    Sub Exporter()
        N°_Client = Sheets("Bon de commande").Range("B3")
        With Application.FileDialog(msoFileDialogFolderPicker)
            .InitialFileName = ActiveWorkbook.Path & "\"
            .Show
            If .SelectedItems.Count > 0 Then Empl_Dossier = .SelectedItems(1) Else: Empl_Dossier = ""
        End With
        If Empl_Dossier = "" Then Exit Sub
        ChDir Empl_Dossier
        ActiveWorkbook.SaveAs Filename:=Empl_Dossier & "\" & "bon de commande " & N°_Client & " FBD-PL_ANONYME.txt", FileFormat:=xlText, CreateBackup:=False
    End Sub
    Dans la dernière ligne pour le nom du fichier à enregistrer, ce sera "bon de commande N°_Client FBD-PL_ANONYME.txt", a modifier si besoin.

    Cdlt

  3. #3
    Membre habitué
    Homme Profil pro
    Chargé de projet SI-Logistique
    Inscrit en
    Août 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé de projet SI-Logistique
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2019
    Messages : 8
    Par défaut
    Woah !
    Merci @Arturo83 !
    C'est génial, ca fonctionne parfaitement.
    J'ai mis une bonne (grosse) demie heure à comprendre comment elle marchait (tant qu'à faire, autant pas mourir bête).
    Je te remercie vivement, et nos ADV aussi, ça va vraiment leur faciliter la vie !
    A bientôt,
    Corentin

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

Discussions similaires

  1. Copie des lignes d'un fichier EXCEL vers un autre sous condition
    Par Nonid dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/01/2019, 11h52
  2. Réponses: 2
    Dernier message: 07/11/2013, 15h21
  3. [XL-2007] Automatisation de recherche dans colonne et copie des lignes
    Par looping06 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/08/2012, 16h19
  4. Copie des dll dans Program Files (x86) sous windows 7 64 bits
    Par dot-_-net dans le forum Général Java
    Réponses: 5
    Dernier message: 03/03/2011, 11h52
  5. Copie des lignes etant identiques.
    Par arnold95 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/04/2008, 13h54

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