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 :

Archivage avec incrémentation [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 14
    Par défaut Archivage avec incrémentation
    Bonsoir,

    Quelqu'un peut il m'aider.

    Je voudrais réaliser une macro à partir d'un fichier xls ou xlsx me permettant de d'archiver des lignes sur un onglet différent, mais devant s'incrémenter à la suite des précédents enregistrements afin de conserver l'historique.

    Avec l'enregistreur de macro je n'arrive pas réaliser l'incrémentation et je galère en VBA.

    Les lignes à archiver sont celles dont la valeur "ARCHIVE" est pointée en colonne AP de l'onglet "Général" (Cde honorée et date réponse client non vide). Elles sont déplacées (coupées) vers l'onglet "Archive". Les lignes vides de l'onglet "Général"(ex lignes coupées) devront être supprimées afin de ne pas avoir de pas de ligne vide.

    Les lignes sont pointées dans l'onglet "Archive". Si j'enregistre 3 lignes, lors de mon prochain archivage, il devra se faire à partir de la 4 ème ligne, etc....

    Onglet "Général" = onglet de travail

    Onglet "Archive" = onglet d'archive des commandes honorées

    J'espère ne pas avoir été trop brouillon dans mes explications.

    Merci à toutes les bonnes volontés.

    Jean Marc
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, regarde PDFCreator Générer des PDFs sans doublons via l'incrémentation d'un N° de fichier, la fonction Function RenommerFichierPDF(sChemin As String, sNomFichier As String) As String devrait t'aider.

    Sinon lire aussi ceci.

  3. #3
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 14
    Par défaut Archivage
    Bonsoir,

    je viens de voir votre post et je vous en remercie.

    Je n'avais pas pensé au format pdf, je vais essayer.

    Je vous recontacte pour le résultat.

    Bonne soirée.

  4. #4
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 14
    Par défaut archivage suite
    je n'arrive pas à faire fonctionner le code transmis.

    Pouvez vous m'indiquer svp les lignes à modifier selon mon environnement.

    Merci

    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
    Option Explicit
     
    Sub ImpressionPdfCreator()
    Dim JobPDF As Object
    Dim sNomPDF As String
    Dim sDossierPDF As String
    Dim sNouveauNomPDF As String
    Dim FSO As Object
     
        ' le nom du PDF sans Extension car PDFCreator l'ajoute ...
        sNomPDF = "Essai"
        sDossierPDF = ThisWorkbook.Path & "\" & "Essais N° ss Doublons"
     
        Set FSO = CreateObject("Scripting.FileSystemObject")
        If Not FSO.FolderExists(sDossierPDF) Then FSO.CreateFolder (sDossierPDF)
        Set FSO = Nothing
     
        sNouveauNomPDF = RenommerFichierPDF(sDossierPDF, sNomPDF)
     
        Set JobPDF = CreateObject("PDFCreator.clsPDFCreator")
     
        With JobPDF
            .cStart "/NoProcessingAtStartup"
            .cOption("UseAutosave") = 1
            .cOption("UseAutosaveDirectory") = 1
            .cOption("AutosaveDirectory") = sDossierPDF
            .cOption("AutosaveFilename") = sNouveauNomPDF
     
            .cOption("AutosaveFormat") = 0        ' 0 PDF
            .cOption("AutosaveStartStandardProgram") = 0
            .cClearCache
        End With
     
        ActiveSheet.PrintOut copies:=1, ActivePrinter:="PDFCreator"
     
        Do Until JobPDF.cCountOfPrintjobs = 1
            DoEvents
        Loop
        JobPDF.cPrinterStop = False
     
        Do Until JobPDF.cCountOfPrintjobs = 0
            DoEvents
        Loop
     
        JobPDF.cClose
        Set JobPDF = Nothing
    End Sub
     
    Private Function RenommerFichierPDF(sChemin As String, sNomFichier As String) As String
    Dim sNouveauNom As String
    Dim i As Long
    Dim FSO As Object
     
        Set FSO = CreateObject("Scripting.FileSystemObject")
        If FSO.fileExists(sChemin & "\" & sNomFichier & ".pdf") = True Then
            sNouveauNom = sNomFichier
            i = 0
            While FSO.fileExists(sChemin & "\" & sNouveauNom & ".pdf") = True
                i = i + 1
                sNouveauNom = sNomFichier & Chr(40) & Format(i, "000") & Chr(41)
               'sNouveauNom = sNomFichier & "_" & Format(i, "000")
            Wend
            sNomFichier = sNouveauNom
        End If
        Set FSO = Nothing
        RenommerFichierPDF = sNomFichier
    End Function

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Regales2015 Voir le message
    je n'arrive pas à faire fonctionner le code transmis.
    Est-ce que tu as essayé de le comprendre ?

  6. #6
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 14
    Par défaut Archivage
    Bonsoir,

    oui j'ai bien essayé de comprendre le code, mais je n'arrive pas à l'adapter à mon contexte. Le fait de créer un fichier à chaque enregistrement (archivage) n'est pas complètement adapté à mon besoin.

    Je voulais faire une césure des lignes contenant "archivé" en colonne "Archivage" dans un onglet sur le même fichier. Les lignes seront coupées et collées à chaque fois que j'activerai la macro, sans écrasement des données précédentes.

    Les lignes vides (coupées) du premier onglet sont supprimées afin de ne pas avoir de lignes vide.

    Merci pour votre aide, mais même avec des efforts, je n'arrive pas à réaliser la macro, en particulier l'incrémentation sans écrasement.

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

Discussions similaires

  1. un dédoublonage avec incrémentation ?
    Par blubz dans le forum Requêtes
    Réponses: 2
    Dernier message: 08/12/2006, 09h24
  2. Faire de l'archivage avec EXcel
    Par ecarbill dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/11/2006, 11h41
  3. [VBA-E] Calcul avec incrémentation
    Par dahu29 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/03/2006, 09h36
  4. Variante de TUpDown avec incrément réel
    Par Bernard Grosdoy dans le forum Composants VCL
    Réponses: 6
    Dernier message: 20/10/2004, 16h40
  5. Update ou insert avec incrément d'un champ
    Par dany13 dans le forum ASP
    Réponses: 5
    Dernier message: 15/10/2004, 12h53

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