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 s'exécute une fois puis se supprime [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Retraité 72 ans
    Inscrit en
    Mai 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité 72 ans

    Informations forums :
    Inscription : Mai 2011
    Messages : 244
    Par défaut Macro s'exécute une fois puis se supprime
    Bonjour,
    Je reçois un classeur comportant des fiches de renseignement, 4 fiches par classeur tous les mois (150 - 200 fiches).
    Je dois retravailler chacune de ces fiches, aussi j'essaie de le faire par macro.
    Je voudrai donc une macro qui ne puisse fonctionner qu'une seule fois. C'est à dire, supprime les lignes qui ne concerne pas la personne. Ensuite elle ne sert plus à rien.
    J'ai fais ceci,mais c'est pas bon.
    En vous remerciant sincèrement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Activate()
        If Cpt = 0 Then 
        Cpt = 1 Exit Sub
        Rows("142:188").Delete Shift:=xlUp
            Rows("3:95").Delete Shift:=xlUp
        Range("A4").Select
    End Sub

  2. #2
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonjour,
    forcément ça marche pas vous dites si Cpt = 0 alors
    Cpt = 1 et ordre de sortir de la macro
    La macro elle s'arrête c'est normal. D'ailleurs, vous n'avez pas de else et de end if
    La fonction si, c'est une condition, si elle est rempli on fait ça, sinon on fait autre chose.
    Cordialement

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    plutot que de mettre une macro dans tes 150/200 fiches pour faire le boulot et rendre cette macro inutilisable voir la suprimer
    je ferait un fichier pilote avec cette macro qui ouvrirait l'un apres l'autre tes fiches ferait le boulot et refermerait tes fiches
    ainsi tes fiches ne sont pas modifiées en terme de modules et ta macro tu ne la fait qu'une fois et test fiches pourraient etre seulement des xlsx(sans macro)
    pour le reste concernant le boulot a faire ,plus de precision est necessaire
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Membre éclairé
    Homme Profil pro
    Retraité 72 ans
    Inscrit en
    Mai 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité 72 ans

    Informations forums :
    Inscription : Mai 2011
    Messages : 244
    Par défaut
    Bonjour Transitoire, Patrick,
    J'ai compris pour le compteur, merci.
    Patrick, je ne comprends pas, peux tu me faire un exemple Stp
    Je vous remercie

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    comme ca vite fait peut etre sans doute amelioré

    imaginons que tu mettent toutes tes fiches dans un dossier ou tu veux
    et que tu mette ton fichier pilote dans le meme dossier

    et bien ouvre ton fichier pilote qui contient cette sub et tu la lance
    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
    Sub vireligne()
        Dim fichiers, Wbk2 As Workbook
        Application.ScreenUpdating = False
        fichiers = Dir(ThisWorkbook.Path & "\*.*") 'chemin a adapter si les fiches ne sont pas dans le meme dossier que le pilote
        Do While fichiers <> ""
            Set Wbk2 = Workbooks.Open(ThisWorkbook.Path & "\" & fichiers)
            With Wbk2.Sheets(1)
                .Rows("142:188").Delete Shift:=xlUp
                .Rows("3:95").Delete Shift:=xlUp
                .Parent.Save
                Application.DisplayAlerts = False
                .Parent.Close
            End With
            fichiers = Dir
        Loop
    End Sub
    voila toute tes fiches ont eu les ligne 3 a 95 et 142 a 188 supprimées
    voili voilou

    j'ai testé sur une dizaine de fichiers voir si pas de soucis memoire et accécibilité imediate de l'object Wbk2 avec 2016 j'ai cru comprendre que tu travaille sur 2003 donc pas de soucis
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    [...]
    Et si on lance la macro une deuxième fois, il se passe quoi? Je ne suis pas certain que tu as bien compris la demande originale
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Il manque des infos pour te mettre sur la piste. Dans la macro que tu donnes, tu donnes les lignes en dur. Dans chaque fiche, ce sont ces lignes à supprimer, et à ne supprimer qu'une fois?

    Il serait nécessaire de pouvoir identifier que des lignes à supprimer existent dans la (les) feuille(s) des fichiers. Boucler sur des fichiers et sur des feuilles à l'intérieur de ceux-ci n'est pas un problème. Ce qu'il est nécessaire de savoir, c'est comment identifier les lignes pour savoir lesquelles supprimer. Après cela, on peut lancer la macro autant de fois qu'on veut, ça ne pose aucun souci.

    Si, dans chaque fichier, on doit supprimer les lignes x à y (on ne peut donc le faire qu'une fois sinon on supprime forcément des mauvaises lors des run suivants), il faut alors taguer le fichier comme étant traité (dans une feuille paramètres ou autre) et ne traiter que ceux qui ne sont pas tagués Traité.

    Il faut donc que tu nous en dises un peu plus sur la façon de détecter ce qui doit être traité ou pas.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    amélioration
    on prend les meme et on recommence
    sauf que:
    1. j'ai ajouté le calculation(gain de temps si minime soit il )
    2. j'ai variabilisé les chemin( plus facile pour adapter a ton cas)
    3. j'ai ajouté un sub dossier dans le dossier des fiches ("fiches modifiées") (creation automatique si il existe pas )
    4. une fois modifié la fiche s'en va dans le sub dossier (ca devrait repondre a la question de pierre)
    5. a la fin tu a une variable texte c'est la liste des fichiers modifiés que j'affiche dans un msgbox (facultatif)
    6. j'ai mis le tout dans un if <> du nom du fichier pilote pour ne pas ouvrir le fichier pilote meme si chez moi je n'ai pas eu d'erreur déclenchée du au readonly)


    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
    Sub vireligne()
        Dim fichiers, Wbk2 As Workbook, chemin$, listefichiersmodifiés$, Oldname$, newname$
        Application.ScreenUpdating = False
        Application.Calculation = xlCalculationManual
        chemin = ThisWorkbook.Path    'chemin a adapter si les fiches ne sont pas dans le meme dossier que le pilote
        newchemin = chemin & "\" & "fiches modifiées"
        If Dir(newchemin, vbDirectory) = "" Then MkDir newchemin
            fichiers = Dir(chemin & "\*.*")
        Do While fichiers <> ""
            If fichiers <> ThisWorkbook.Name Then
                Oldname = chemin & "\" & fichiers
                newname = newchemin & "\" & fichiers
                Set Wbk2 = Workbooks.Open(chemin & "\" & fichiers)
                With Wbk2.Sheets(1)
                    .Rows("142:188").Delete Shift:=xlUp
                    .Rows("3:95").Delete Shift:=xlUp
                    .Parent.Save
                    Application.DisplayAlerts = False
                    listefichiersmodifiés = listefichiersmodifiés & Wbk2.Name & vbCrLf
                    .Parent.Close
                    Name Oldname As newname
                End With
            End If
            fichiers = Dir
        Loop
        Application.Calculation = xlCalculationAutomatic
        MsgBox "liste des fiches modifiées " & vbCrLf & listefichiersmodifiés
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Ca ne répond à rien du tout. Tu inventes des solutions, foireuses ou en tout cas non demandées et inutiles, au fur et à mesure des remarques en modifiant des noms de fichiers et/ou en les déplaçant sans tenir compte des demandes de l'utilisateur. C'est désespérant.

    Où as-tu lu qu'il fallait modifier, déplacer, renommer?

    Il existe des solutions si Jean30 répond aux questions posées. Il me semble évident qu'il est le seul à pouvoir y répondre et qu'il ne sert à rien de répondre à sa place ou d'envisager toutes sortes de manipulations non demandées (et inutiles lorsque nous aurons les réponses aux questions posées).
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #10
    Membre éclairé
    Homme Profil pro
    Retraité 72 ans
    Inscrit en
    Mai 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité 72 ans

    Informations forums :
    Inscription : Mai 2011
    Messages : 244
    Par défaut
    Excusez-moi, étant âgé et très malade, j'ai du mal à comprendre vos remarques très certainement justifiées.
    Je bidouille un peu le Vba avec l'enregistreur, c'est à peu près tout.

    Patrick :
    plutot que de mettre une macro dans tes 150/200 fiches pour faire le boulot et rendre cette macro inutilisable voir la suprimer
    je ferait un fichier pilote avec cette macro qui ouvrirait l'un apres l'autre tes fiches ferait le boulot et refermerait tes fiches
    ainsi tes fiches ne sont pas modifiées en terme de modules et ta macro tu ne la fait qu'une fois et test fiches pourraient etre seulement des xlsx(sans macro)
    Ca je ne comprend pas , mais ça me plairait un exemple Svp ?

    imaginons que tu mettent toutes tes fiches dans un dossier
    Dans un dossier RecepFiche (sur le Bureau), j'aimerai en effet

    Pierre :
    lignes à supprimer, et à ne supprimer qu'une fois?
    Oui

    Le but étant de garder et enregistrer LA fiche correspondant à chaque nom et si possible sans macros sur les fichiers excepté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	Private Sub Worksheet_Change(ByVal Target As Range)
    Toujours garder A1:A2, puis chaque fiche reprenant la place en A3
    De A3:A47 = Fiche A
    De A49:A93 = Fiche B
    De A95:A139 = Fiche C
    De A141:A185 = Fiche D

    Le but, enregistrer chaque fiche individuellement sur le bureau selon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'ActiveWorkbook.SaveAs Filename:="E:\Utilisateurs\Castor\Desktop\" & Range("A4").Value & " " & Range("K4").Value & ".xls
    Le fichier EssaiFiche doit rester ouvert, or après il se retrouve fermé
    Problème tout le monde a-t-il le "Bureau" en "E" comme moi ?
    Merci de votre aide

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    La seule question intéressante, au delà des solutions foireuses proposées, est celle-ci: Comment déterminer les lignes à supprimer?

    Est-il possible de déduire cela d'un algorithme ou sont-ce des lignes fixes (de x à y)?

    Tout le charabia proposé jusqu'ici ne sert à rien si nous n'avons pas la réponse à cette question? Si l'on doit supprimer de la ligne x à la ligne y (dans tests logiques), alors, il faut impérativement placer quelque part dans le fichier un tag (une marque, un signet, une info, appelez cela comme vous voulez) qui permettent de déterminer que le fichier a déjà été traité. Le but de cette manœuvre est d'empêcher que le deuxième lancement de la macro supprime des lignes non désirées...

    Tant que nous n'aurons pas la réponse à cette question relative à la détermination des lignes à supprimer, nous ne pourrons pas avancer...

    Je ne vois pas comment être plus clair que cela
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  12. #12
    Membre éclairé
    Homme Profil pro
    Retraité 72 ans
    Inscrit en
    Mai 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité 72 ans

    Informations forums :
    Inscription : Mai 2011
    Messages : 244
    Par défaut
    Je ne sais pas comment vous dire, une fiche se compose de la ligne 1 à la ligne 47 pour la fiche A en supprimant les lignes 48 à 185
    La difficulté (très grande pour moi) on récupère le fichier original (s'il pouvait toujours rester à l'écran ce serait génial),
    On supprime les lignes 3:48 puis les lignes 94:185 pour la fiche B
    On supprime les lignes 3:94 puis les lignes 140:185 pour la fiche C
    On supprime les lignes 3:140 pour la fiche D
    Le GROS problème, en faisant ainsi les fiches individuelles "remontent"

  13. #13
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Je suppose que lorsque vous parlez des fiches B, C etc, vous parlez de "fiches" dont les données se trouvent dans la même feuille que la fiche A mais sous celle-ci.

    Dès lors, en commençant par le bas de la feuille, ce problème de "lignes qui remontent" n'existent plus.

    Il faut donc supprimer d'abord les données de la fiche D, puis celles de la fiche C (qui n'ont pas bougé puisque l'on a supprimé en dessous d'elles), etc...

    Problème. si vous supprimez toutes les fiches, il ne reste plus grand chose. Que voulez-vous en faire, de ce "plus grand chose"?

    Autrement dit, comment se présente votre fichier au départ? Que voulez-vous obtenir à l'arrivée? On en revient à une expression de la demande, en fait.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  14. #14
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 322
    Par défaut
    Je prend la discussion en court de route.

    Jean, le code que tu as donné post #1, c'est toi qui l'as écrit ou c'est du code automatique VBA ? Si c'est le cas le comprends tu ?

    Je pense que tu as compris la remarque de Pierre concernant ce qui se passe si tu appelles le code une 2ème fois.

    Peux-tu donner un exemple concret de ce que tu veux faire ?

    Edit : J'ai vu que tu as donné des infos supplémentaires pendant que je postais, si tu as un fichier excel en exemple, ça peut nous donner une meilleure vision.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  15. #15
    Membre éclairé
    Homme Profil pro
    Retraité 72 ans
    Inscrit en
    Mai 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité 72 ans

    Informations forums :
    Inscription : Mai 2011
    Messages : 244
    Par défaut
    Bonjour chrtophe,
    Merci de t'intéresser à ma demande
    J'ai fais le code du post 1 avec l'enregistreur en esseyant de mettre un compteur, mais pas bon : Transitoire
    J'ai corrigé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Activate()
        If Cpt = 1 Then 
        Cpt = 0 Exit Sub
        Rows("142:188").Delete Shift:=xlUp
            Rows("3:95").Delete Shift:=xlUp
        Range("A4").Select
    End Sub
    Je ne sais pas comment vous dire, si vous regardez le fichier, je pense que vous cernerez mieux ma demande, le but étant d'avoir une fiche unique pour chacune des 4 fiches présente.

    En vous remerciant.

  16. #16
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Si tu veux bien, nous allons séquencer le problème. Tu reçois x fichiers qui contiennent chacun y fiches (4?) qui vont de la ligne 3 à la ligne 47, avec une ligne vide en chaque fiche.

    Que souhaites-tu réaliser au départ d'un fichier?
    Copier chaque fiche dans un fichier séparé?
    éclater les fiches dans x feuilles d'un fichier donné?
    Si on considère tous les fichiers, tu veux récupérer un seul fichier avec autant d'onglets que le nombre de fiches présentes sur l'ensemble du fichier?

    Essaie d'exprimer ta demande par rapport à ces questions, et je suis certain que nous pourrons y arriver


    Merci Christophe de passer par ici
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  17. #17
    Membre éclairé
    Homme Profil pro
    Retraité 72 ans
    Inscrit en
    Mai 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité 72 ans

    Informations forums :
    Inscription : Mai 2011
    Messages : 244
    Par défaut
    Pierre, tu me demande :
    Tu reçois x fichiers qui contiennent chacun x fiches (4?) qui vont de la ligne 3 à la ligne 47, avec une ligne vide en chaque fiche.
    Oui, les lignes 1 & 2 servant pour chaque fiche.

    Que souhaites-tu réaliser au départ d'un fichier?
    Copier chaque fiche dans un fichier séparé?
    OUI enregistré sous le nom (A4) et prénom (K4) pour la fiche 1

    éclater les fiches dans x feuilles d'un fichier donné?
    Oui. Elles iront dans le dossier "RecepFiche" placé sur le bureau

    Si on considère tous les fichiers, tu veux récupérer un seul fichier avec autant d'onglets que le nombre de fiches présentes sur l'ensemble du fichier?
    Non, un fichier par fiche

    Je vous remercie de tout cœur pour votre grande patience

  18. #18
    Membre éclairé
    Homme Profil pro
    Retraité 72 ans
    Inscrit en
    Mai 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité 72 ans

    Informations forums :
    Inscription : Mai 2011
    Messages : 244
    Par défaut
    Ce serait peut-être plus simple qu'il y ait une seule fiche avec un bouton Enregistrer (nom A4 & K4)
    Après un message : Voulez-vous remplir une autre fiche ? OUI - NON
    Mais comment revenir sur la première fiche vierge ?
    Je pense que là, c'est du code qu'il faut, ce que je suis incapable de faire.

  19. #19
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 322
    Par défaut
    Il manque encore quelques éclaircissements, j'ai l'impression que tu mélanges fiche au sens formulaire comme les 4 présentes dans le xls d'exemple, fichier, classeur Excel (le fichier Excel stocké sur le disque) qui peut contenir plusieurs feuilles (les éventuels différents onglets là ou c'est marqué FR dans ton dic).

    Ce que j'appele un formulaire, c'est les blocs de données AAAA, BBBB, CCCC, etc.

    Que reçois tu ?
    un fichier Excel par formulaire donc 150-200 fichier ?
    x fichiers Excel contenant x formulaires ?
    x fichiers Excel contenant 1 formulaire ?
    si plusieurs formulaires dans le fichier, le nombre est toujours le même ou peut varier ?

    Que souhaites-tu en résultat final ?
    1 fichier Excel (donc un classeur) par formulaire ? si j'ai bien compris c'est ça.
    1 fichier Excel avec 1 feuille (onglet) par formulaire ?

    Tu avais aussi posé la question :
    Tout le monde a-t-il le bureau en E comme moi ?
    Ben non, c'est plutôt C en général sous la forme c:\Users\<ton nom d'utilisateur>\desktop.
    Il te faut donc récupérer le chemin
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  20. #20
    Membre éclairé
    Homme Profil pro
    Retraité 72 ans
    Inscrit en
    Mai 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité 72 ans

    Informations forums :
    Inscription : Mai 2011
    Messages : 244
    Par défaut
    Je reçois x fichier Excel avec 4 formulaires chacun, soit environ 70-80 par mois.
    C'est toujours 4 formulaire par fichier.
    Ce que je désire au final, c'est x fichier avec un seul formulaire (propre à la personne) d’où l'enregistrement Nom & Prénom.

    Que pense-tu de mon idée du post précédent ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. update une fois puis insert
    Par jerome572 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 16/09/2011, 10h21
  2. DBMS_job qui s'exécute une fois par an
    Par nadsky dans le forum PL/SQL
    Réponses: 3
    Dernier message: 01/02/2011, 16h51
  3. code qui s excute une fois
    Par sisna dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 20/08/2008, 11h35
  4. empêcher l'execution d'une macro plus d'une fois
    Par ouioui_cmoi dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/03/2008, 18h10
  5. Réponses: 30
    Dernier message: 29/05/2006, 19h16

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