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 :

EXCEL ET VBA


Sujet :

Macros et VBA Excel

  1. #21
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Re,

    j'ai testé avec un fichier à moi sur Excel 2011 et 2016 (j'y ai rajouté un bouton que j'ai supprimé sur la copie),
    tout c'est passé sans aucun problème …
    Je me demande si le problème ne vient pas du fichier en lui même ??

    Les questions que l'on peut se poser :
    Le fichier a été créé sur quel plateforme ?
    Est il utilisé aussi bien sur un Mac que sur un PC ? peut être est il vérolé ??

    Solution : peut être faut - il recréer le fichier à partir de zéro en évitant les copier coller avec le fichier qui pose problème …
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  2. #22
    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,
    Je suis moi aussi sur Mac. J'ai un document de Facturation/Devis/Compta fait maison, mais qui marchait fort bien. Un jour, j'ai voulu essayer de télécharger les données de ma banque. sans faire exprès, j'ai choisi SlkExcel au lieu de XlsExcel. En un rien de temps, j'ai eu plein d'ennui, Les formats devenait incompréhensible sur la majorité du document. Quand je souhaitais retrouver les formats, j'avais un message: " Impossible, le document comprends trop de formats" je cite de mémoire.
    Après des semaines de recherches infructueuses, j'ai du récupérer la dernière sauvegarde avant le "vérolage" et reprendre les deux mois manquant.
    Chaque nouvelle MAJ peut emporter des nouveautés qui Bloquent. C'est pourquoi je reste attaché à mon PackOffice/2011.6 .
    Par contre, désolé de ne pas avoir de compétences pour vous aider
    Cordialement

  3. #23
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour

    j'ai testé sur Excel 2011 avec le fichier fourni, j'ai le même problème d'enregistrement,
    Avec un fichier récent à moi pas de problème sur les 2 versions.

    PS : Au bout d'un moment on sera obligé d'aller sur la dernière version d'excel,
    Donc tant que l'on peut gardons la 2011, mais ne pas hésiter à envoyé à MS les problèmes et critiques sur Excel 2016 Mac afin que l'on puisse espérer des améliorations ;
    C'est ce que j'ai fait et je n'ai pas été tendre, en plus de pointer du doigt tout ce qui n'allait pas, je leur ai dit que c'était une honte et du vole de vendre/louer un logiciel au même prix que les confreres PC, de amputer de tout ce je leur ai cité et des logiciels non fourni sur Mac
    Faut pas hésiter …
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  4. #24
    Membre averti
    Femme Profil pro
    autre
    Inscrit en
    Avril 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Avril 2012
    Messages : 23
    Par défaut
    Citation Envoyé par RyuAutodidacte Voir le message
    Re,

    j'ai testé avec un fichier à moi sur Excel 2011 et 2016 (j'y ai rajouté un bouton que j'ai supprimé sur la copie),
    tout c'est passé sans aucun problème …
    Je me demande si le problème ne vient pas du fichier en lui même ??

    Les questions que l'on peut se poser :
    Le fichier a été créé sur quel plateforme ?
    Est il utilisé aussi bien sur un Mac que sur un PC ? peut être est il vérolé ??

    Solution : peut être faut - il recréer le fichier à partir de zéro en évitant les copier coller avec le fichier qui pose problème …
    Bonjour

    le fichier je l'ai fait sur Mac et il fonctionnait aussi bien sur Mac que sur PC

    Comment aurait il pu être vérolé c'est bizarre

    Quand tu as testé sur ton fichier as tu mis exactement les mêmes codes que les miens ? Si oui je vais essayer de le refaire complètement :-(

  5. #25
    Membre averti
    Femme Profil pro
    autre
    Inscrit en
    Avril 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Avril 2012
    Messages : 23
    Par défaut
    Citation Envoyé par Transitoire Voir le message
    Bonjour,
    Je suis moi aussi sur Mac. J'ai un document de Facturation/Devis/Compta fait maison, mais qui marchait fort bien. Un jour, j'ai voulu essayer de télécharger les données de ma banque. sans faire exprès, j'ai choisi SlkExcel au lieu de XlsExcel. En un rien de temps, j'ai eu plein d'ennui, Les formats devenait incompréhensible sur la majorité du document. Quand je souhaitais retrouver les formats, j'avais un message: " Impossible, le document comprends trop de formats" je cite de mémoire.
    Après des semaines de recherches infructueuses, j'ai du récupérer la dernière sauvegarde avant le "vérolage" et reprendre les deux mois manquant.
    Chaque nouvelle MAJ peut emporter des nouveautés qui Bloque. C'est pourquoi je reste attaché à mon PackOffice/2011.6 .
    Par contre, désolé de ne pas avoir de compétences pour vous aider
    Cordialement
    Bonjour
    c'est pas grave que tu ne puisses pas m'aider mais je te remercie de ton post quand même, ça viendrait à prouver qu'il faut pas grand chose pour que ça débloque.
    Moi le pire c'est que j'ai rien téléchargé. C'est en faisant un devis comme d'habitude qui s'est bien déroulé au départ, j'ai même pas eu le message me disant qu'il fallait que je retire les macros et c'est en voulant aller ouvrir mon fichier dans le dossier archives pour le mettre en pdf afin de l'envoyer à mon client que je n'ai pas pu l'ouvrir et comme le fichier d'origine s'était bien réinitialiser j'avais plus rien (les boules) et après j'ai eu un tas de messages différents.

  6. #26
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Re, as tu fait une mise à jour entre temps ??
    Je re-testerai dans la journée si j'ai le temps…

    Edit : correction du post, avec l'écriture intuitive du phone parfois ca ne le fait pas
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  7. #27
    Membre averti
    Femme Profil pro
    autre
    Inscrit en
    Avril 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Avril 2012
    Messages : 23
    Par défaut
    Citation Envoyé par RyuAutodidacte Voir le message
    Re, as tu fait une mise à jour entre temps ??
    Je re-testerai dans la journée si j'ai le temps…

    Edit : correction du post, avec l'écriture intuitive du phone parfois ca ne le fait pas
    Non aucune mise à jour et franchement j'ai pas envie d'en faire avec tous les problèmes, surtout que j'ai d'autres fichiers excel avec du code VBA et qui fonctionnent très bien du coup j'ai pas envie de me retrouver avec des problèmes sur tous

  8. #28
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Re,

    Après plusieurs tests :
    - avec l'enregistreur de macro => ok
    - désactivation de certaines parties du code => mitigé
    - chemin et nom du fichier en dur dans le code.

    Pour l'instant je n'ai pas très bien compris exactement le problème, mais celui-ci semble venir à priori des variables textes qui constituent
    le chemin et nom d'enregistrement du fichier …

    là plus le temps mais je referais qq tests ce soir
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  9. #29
    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
    Bonsoir,
    J'ai essayé et j'ai rencontré des problèmes, j'ai modifié le code voir ci-dessous et avec 2 dossiers sur le bureau, "Archives Devis" et "Archives Factures", ça marche.
    essayez chez vous?
    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
    Sub Archivage_Devis()
        chemin = ThisWorkbook.Path
        PathSep = Application.PathSeparator
        nom = [D8].Value & "-" & Year([E3]) & "-" & MonthName(Format([E3], "mm")) & "-" & Format([K5], "0000") & ".xlsm"
    Debug.Print nom
     
    '---------------------Création du fichier temporaire
        If [K5] = "" Then MsgBox "Veuillez saisir en cellule K5 le numéro du devis", , "Création abandonnée !": Exit Sub
     
        If MsgBox(" Si le devis est entièrement édité, veuillez confirmer" & vbCrLf & vbCrLf & _
            " l'archivage du devis n° " & nom, vbYesNo, " Veuillez confirmer pour poursuivre,") = vbYes Then
            Application.EnableEvents = False
            Application.DisplayAlerts = False   '-------Annulation des alertes
    '---------------------Nom du fichier à créer extension xls
            ActiveSheet.Shapes.Range(Array("Bouton1")).Visible = False
           ' ActiveSheet.PrintOut copies:=1
            Sheets("Devis").Copy
            Debug.Print chemin & PathSep & "Archives Devis" & PathSep & nom
     
     ActiveWorkbook.SaveAs chemin & PathSep & "Archives Devis" & PathSep & nom, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
            ActiveWindow.Close
    '---------------------Après l'archivage le fichier se réinitialise
            ActiveSheet.Shapes.Range(Array("Bouton1")).Visible = True
            Sheets("Devis").Range("E3,E4,A13:G17,A19:F22,G27").ClearContents
            Sheets("Devis").Range("K5").Value = Sheets("Devis").Range("K5").Value + 1
            Application.DisplayAlerts = True   '-------rétablissement des alertes
            Application.EnableEvents = True
        End If
        [K5].Select
        ActiveWorkbook.Save
    End Sub
     
    Sub Archivage_Factures()
        chemin = ThisWorkbook.Path
        PathSep = Application.PathSeparator
        nom = [D8].Value & "-" & Year([E3]) & "-" & MonthName(Format([E3], "mm")) & "-" & Format([K5], "0000") & ".xlsm"
    '---------------------Création du fichier temporaire
        If [K5] = "" Then MsgBox "Veuillez saisir en cellule K5 le numéro de la facture", , "Création abandonnée !": Exit Sub
     
        If MsgBox(" Si la facture est entièrement éditée, veuillez confirmer" & vbCrLf & vbCrLf & _
                    " l'archivage de la facture n° " & nom, vbYesNo, " Veuillez confirmer pour poursuivre,") = vbYes Then
           Application.EnableEvents = False
           Application.DisplayAlerts = False   '-------Annulation des alertes
    '---------------------Nom du fichier à créer extension xls
           Sheets("Facture").Shapes.Range(Array("Bouton2")).Visible = False
         ' ActiveSheet.PrintOut copies:=1
           Sheets("Facture").Copy
           Debug.Print chemin & PathSep & "Archives Factures" & PathSep & nom
     
     ActiveWorkbook.SaveAs chemin & PathSep & "Archives Factures" & PathSep & nom, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
           ActiveWindow.Close
     
     
     
    '---------------------Après l'archivage le fichier se réinitialise
            Sheets("Facture").Shapes.Range(Array("Bouton2")).Visible = True
            Sheets("Facture").Range("E3,E4,A14:G21,F24:G24").ClearContents
            Sheets("Facture").Range("K5").Value = Sheets("Facture").Range("K5").Value + 1
            Application.DisplayAlerts = True   '-------rétablissement des alertes
            Application.EnableEvents = True
        End If
        [K5].Select
        ActiveWorkbook.Save
    End Sub
    J'espère que ça va marcher chez vous !!!
    Cordialement

  10. #30
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonsoir,

    tu l'as fait sur quelle version d'Excel ??
    Sur Excel 2016 Mac chez moi ça ne marche pas

    Erreur 1004 => la méthode SaveAs de l'objet Workbook à échoué => sur la ligne ActiveWorkbook.SaveAs …
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  11. #31
    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
    Re C'est dingue, je suis en 2011.6, ça plantait, j'ai adapté et comme cela ça marche
    Il doit y avoir un petit rien, faudra le trouver ?
    Cordialement

  12. #32
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Re,

    En fin de compte j'ai réussi à faire marcher les 2 codes, celui de @julie13300 et de @Transitoire (perso j'ai préféré les enregistré en xlsx, ce qui me parait le plus logique)

    J'ai eu un message de OS X (pour la SandBox) me demandant d'autoriser l'accès au dossier où l'on enregistré le fichier (je crois qu'il faut le faire au moins 1 fois).
    Souci c'est que dans la boîte de dialogue impossible de sélectionner le dossier concerné normalement, j'ai dû ruser …
    Pour cela j'ai fait un clic droit sur ledit dossier pour le renommer (mais on ne le renomme pas bien sur) puis j'ai sélectionner directement l'icône du dossier,
    j'ai pu alors cliquer sur le bouton "Accorder l'accès" puis l'enregistrement c'est fait => macro réussi

    modification de code :
    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
    Option Explicit
     
    Dim chemin As String
    Dim PathSep As String
    Dim nom As String
     
    Sub Archivage_Devis()
        chemin = ThisWorkbook.Path
        PathSep = Application.PathSeparator
        nom = [D8] & "-" & Year([E3]) & "-" & MonthName(Format([E3], "mm")) & "-" & Format([K5], "0000") & ".xlsx"
    '---------------------Création du fichier temporaire
        If [K5] = "" Then MsgBox "Veuillez saisir en cellule K5 le numéro du devis", , "Création abandonnée !": Exit Sub
     
        If MsgBox(" Si le devis est entièrement édité, veuillez confirmer" & vbCrLf & vbCrLf & _
            " l'archivage du devis n° " & nom, vbYesNo, " Veuillez confirmer pour poursuivre,") = vbYes Then
            Application.EnableEvents = False
            Application.DisplayAlerts = False   '-------Annulation des alertes
    '---------------------Nom du fichier à créer extension xlsx
            Sheets("Devis").Copy
             ActiveSheet.Shapes.Range(Array("Bouton1")).Delete
            ActiveWorkbook.SaveAs chemin & PathSep & "Archives Devis" & PathSep & nom, FileFormat:=xlOpenXMLWorkbook
            ActiveWindow.Close
    '---------------------Après l'archivage le fichier se réinitialise
            Sheets("Devis").Range("E3,E4,A13:G17,A19:F22,G27").ClearContents
            Sheets("Devis").Range("K5").Value = Sheets("Devis").Range("K5").Value + 1
            Application.DisplayAlerts = True   '-------rétablissement des alertes
            Application.EnableEvents = True
        End If
        [K5].Select
        ActiveWorkbook.Save
    End Sub
     
    Sub Archivage_Factures()
        chemin = ThisWorkbook.Path
        PathSep = Application.PathSeparator
        nom = [D8] & "-" & Year([E3]) & "-" & MonthName(Format([E3], "mm")) & "-" & Format([K5], "0000") & ".xlsx"
    '---------------------Création du fichier temporaire
        If [K5] = "" Then MsgBox "Veuillez saisir en cellule K5 le numéro de la facture", , "Création abandonnée !": Exit Sub
     
        If MsgBox(" Si la facture est entièrement éditée, veuillez confirmer" & vbCrLf & vbCrLf & _
                    " l'archivage de la facture n° " & nom, vbYesNo, " Veuillez confirmer pour poursuivre,") = vbYes Then
           Application.EnableEvents = False
           Application.DisplayAlerts = False   '-------Annulation des alertes
    '---------------------Nom du fichier à créer extension xlsx
           Sheets("Facture").Copy
           ActiveSheet.Shapes.Range(Array("Bouton2")).Delete ' on supprime le bouton au lieu de le cacher
           ActiveWorkbook.SaveAs chemin & PathSep & "Archives Factures" & PathSep & nom, FileFormat:= xlOpenXMLWorkbook
           ActiveWindow.Close
    '---------------------Après l'archivage le fichier se réinitialise
            Sheets("Facture").Range("E3,E4,A14:G21,F24:G24").ClearContents
            Sheets("Facture").Range("K5").Value = Sheets("Facture").Range("K5").Value + 1
            Application.DisplayAlerts = True   '-------rétablissement des alertes
            Application.EnableEvents = True
        End If
        [K5].Select
        ActiveWorkbook.Save
    End Sub
    PS : pas besoin de refaire le fichier !!!
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  13. #33
    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, si vous avez réussi, tant mieux! mais c'est pas simple comme système.
    Par ailleurs, J'ai un truc à soulever, j'aimerais savoir si ça se passe chez vous.
    Je clique sur le bouton, le document Devis nouveau vient se ranger dans le dossier("Archives Devis") parfait.
    Mais, si je souhaite ouvrir le nouveau document, j'ai un message qui me prévient que ce document contient des liaisons et me demande un choix.
    Lors des essais, j'ai répondu non. Mais je viens de me rendre compte, que le Nom du client (adresse, etc)n'est pas pris en compte, la cellule est comme avant le choix client.
    Si je répond oui, c'est la même chose.
    Je pense qu'il convient lors de la création du nouveau document et avant de remettre l'ancien à zéro, de faire un copier/coller(Valeur) afin de conserver le nom,adresse etc en mémoire définitive dans les cellules susdites.
    Enfin moi ce que j'en dit?
    Cordialement

  14. #34
    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
    Re bonjour,
    Une petite rectification!. Quand apparait le message sur les liaisons, si le document devis et factures est ouvert, en cliquant sur Oui, tout va bien. s'il est fermé, en cliquant sur oui, il apparait un autre message demandant si je veut ouvrir le dossier("Devis et Factures"). si je dit "oui", tout va bien, si "non" les données client ne sont pas affichés?

    Cordialement

  15. #35
    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 j'ai testé le fichier qui a été donné en exemple et c'est la ligne "nom= qui posait probleme chez moi avec monthname"

    bref j'ai simplifié
    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
    Sub Archivage_Devis()
        Dim chemin As String, nom As String
        [E3] = Date
        chemin = ThisWorkbook.Path & "\Archives Devis\"
        nom = [E8].Value & "-" & Format(CDate([E3]), "mmmm") & "-" & Format([K5], "0000") & ".xlsx"
        Debug.Print chemin & nom
        '---------------------Création du fichier temporaire
        If [K5] = "" Then MsgBox "Veuillez saisir en cellule K5 le numéro du devis", , "Création abandonnée !": Exit Sub
        If MsgBox(" Si le devis est entièrement édité, veuillez confirmer" & vbCrLf & vbCrLf & _
                " l'archivage du devis n° " & nom, vbYesNo, " Veuillez confirmer pour poursuivre,") = vbYes Then
            With Application: .EnableEvents = False: .DisplayAlerts = False: End With    '-------Annulation des alertes
            [E3] = [E3].Text    ' remplace la cellule par sa valeur
            ' ActiveSheet.PrintOut copies:=1
            Sheets("Devis").Copy
            ActiveSheet.Shapes("Bouton1").Delete    ' on supprime le bouton dans le devis ".xlx"
            ActiveWorkbook.SaveAs Filename:=chemin & nom, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
            ActiveWindow.Close
            '---------------------Après l'archivage le fichier se réinitialise
            Sheets("Devis").Range("E3,E4,A13:G17,A19:F22,G27").ClearContents
            Sheets("Devis").Range("K5").Value = Sheets("Devis").Range("K5").Value + 1
            ThisWorkbook.Save    'il est revenu a l'initial on le sauve comme ca on garde la numerotation a jouret quand on fermera on sera pas obligé d'enregistrer
            Application.DisplayAlerts = True   '-------rétablissement des alertes
            Application.EnableEvents = True
        End If
    End Sub
    il y a 36 facons d'obtenir le moi de la date en lettre
    testez dans le debug
    ?monthname(format(date,"mm"))
    ?monthname(month(date))
    ?format(date,"mmmm")
    cet exemple fonction sur windows pour le separateur "\" dans le chemin chez mac je sais pas a vous de voir
    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

  16. #36
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour,

    PS : Slt Patrick MonthName(Format([E3], "mm")) marche sur Mac, mais je suis d'accord avec toi, c'est compliqué l'écriture, juste Format([E3], "mmm") suffit


    Concernant Excel 2016 Mac, il est important de connaitre ces 2 points :

    Demande d’accès à plusieurs fichiers

    Exécution d’un AppleScript avec VB

    @julie13300 et @Transitoire pour régler définitivement le problème décrit par @Transitoire => modif de code :
    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
    68
    69
    70
    71
    Sub Archivage_Devis()
    Dim chemin$, Sep$, nom$, chm$, Lks
        chemin = ThisWorkbook.Path
        PathSep = Application.PathSeparator
        nom = [D8] & "-" & Year([E3]) & "-" & Format([E3], "mmm") & "-" & Format([K5], "0000") & ".xlsx"
    '---------------------Création du fichier temporaire
        If [K5] = "" Then MsgBox "Veuillez saisir en cellule K5 le numéro du devis", , "Création abandonnée !": Exit Sub
     
        If MsgBox(" Si le devis est entièrement édité, veuillez confirmer" & vbCrLf & vbCrLf & _
            " l'archivage du devis n° " & nom, vbYesNo, " Veuillez confirmer pour poursuivre,") = vbYes Then
            Application.EnableEvents = False
            Application.DisplayAlerts = False   '-------Annulation des alertes
    '---------------------Nom du fichier à créer extension xlsx
            Sheets("Devis").Copy
             ActiveSheet.Shapes.Range(Array("Bouton1")).Delete
     
            ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
            Lks = ActiveWorkbook.LinkSources()
            If Not IsEmpty(Lks) Then
                For i = 1 To UBound(Lks): ActiveWorkbook.BreakLink Name:=Lks(i), Type:=xlExcelLinks: Next
            End If
     
            chm = chemin & PathSep & "Archives Devis" & PathSep & nom
     
            ActiveWorkbook.SaveAs chm, FileFormat:=xlOpenXMLWorkbook
            ActiveWindow.Close
    '---------------------Après l'archivage le fichier se réinitialise
            Sheets("Devis").Range("E3,E4,A13:G17,A19:F22,G27").ClearContents
            Sheets("Devis").Range("K5").Value = Sheets("Devis").Range("K5").Value + 1
            Application.DisplayAlerts = True   '-------rétablissement des alertes
            Application.EnableEvents = True
        End If
        Application.Goto [K5]
        ActiveWorkbook.Save
    End Sub
     
    Sub Archivage_Factures()
    Dim chemin$, Sep$, nom$, chm$, Lks
        chemin = ThisWorkbook.Path
        PathSep = Application.PathSeparator
        nom = [D8] & "-" & Year([E3]) & "-" & Format([E3], "mmm") & "-" & Format([K5], "0000") & ".xlsx"
    '---------------------Création du fichier temporaire
        If [K5] = "" Then MsgBox "Veuillez saisir en cellule K5 le numéro de la facture", , "Création abandonnée !": Exit Sub
     
        If MsgBox(" Si la facture est entièrement éditée, veuillez confirmer" & vbCrLf & vbCrLf & _
                    " l'archivage de la facture n° " & nom, vbYesNo, " Veuillez confirmer pour poursuivre,") = vbYes Then
           Application.EnableEvents = False
           Application.DisplayAlerts = False   '-------Annulation des alertes
    '---------------------Nom du fichier à créer extension xls
           Sheets("Facture").Copy
           ActiveSheet.Shapes.Range(Array("Bouton2")).Delete
     
            ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
            Lks = ActiveWorkbook.LinkSources()
            If Not IsEmpty(Lks) Then
                For i = 1 To UBound(Lks): ActiveWorkbook.BreakLink Name:=Lks(i), Type:=xlExcelLinks: Next
            End If
     
            chm = chemin & PathSep & "Archives Factures" & PathSep & nom
     
            ActiveWorkbook.SaveAs chm, FileFormat:=xlOpenXMLWorkbook
            ActiveWindow.Close
    '---------------------Après l'archivage le fichier se réinitialise
            Sheets("Facture").Range("E3,E4,A14:G21,F24:G24").ClearContents
            Sheets("Facture").Range("K5").Value = Sheets("Facture").Range("K5").Value + 1
            Application.DisplayAlerts = True   '-------rétablissement des alertes
            Application.EnableEvents = True
        End If
        Application.Goto [K5]
        ActiveWorkbook.Save
    End Sub
    Tout est ok chez moi avec la dernière version d'Excel 2016 Mac (donc mis à jour)
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  17. #37
    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
    Super !
    Avec aussi un merci à Patrick!
    Cordialement

  18. #38
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    juste précision sur Excel 2016 les dernières mises à jour permettent de se rapprocher de Excel 2011

    on peut de nouveau coder normalement et l'interface VB se rapproche de celle de Excel 2010 PC

    Par contre je n'ai pas encore vu (j'ai pas cherché) le moyen de créer un useform, mais ça s'améliore (je ne sais pas si mon mécontentement envoyé à MS à joué …)

    Nom : Capture d’écran 2018-05-08 à 11.25.44.png
Affichages : 147
Taille : 209,4 Ko

    il reste des défaut mais c'est mieux

    Edit : Patrick
    cet exemple fonction sur windows pour le separateur "\" dans le chemin chez mac je sais pas a vous de voir
    c'est pour cela qu'il y a Application.PathSeparator et ThisWorkbook.Path qui aident grandement
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  19. #39
    Membre averti
    Femme Profil pro
    autre
    Inscrit en
    Avril 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Avril 2012
    Messages : 23
    Par défaut
    Bonjour à tous


    J'avais tout refait pour éviter que quelque chose dans le code soit vérolé et toujours des erreurs

    Là je viens de reprendre le code de RyuAutodidacte et lorsque j'archive une fois avoir dit oui sur la première fenetre qui me demande si tout est ok je tombe sur erreur d'exécution 1004
    je clique sur deboguer et ça me surligne cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Shapes.Range(Array("Bouton2")).Delete
    J'avoue que j'en ai marre :-(

    et merci à tous

  20. #40
    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
    et bien soit!
    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
    Sub Archivage_Devis()
        Dim chemin As String, nom As String, appsep
        appsep = Application.PathSeparator
        [E3] = Date
        chemin = ThisWorkbook.Path & appsep & "Archives Devis" & appsep
        nom = [E8].Value & "-" & Format(CDate([E3]), "mmmm") & "-" & Format([K5], "0000") & ".xlsx"
        'Debug.Print chemin & nom
        '---------------------Création du fichier temporaire
        If [K5] = "" Then MsgBox "Veuillez saisir en cellule K5 le numéro du devis", , "Création abandonnée !": Exit Sub
        If MsgBox(" Si le devis est entièrement édité, veuillez confirmer" & vbCrLf & vbCrLf & _
                " l'archivage du devis n° " & nom, vbYesNo, " Veuillez confirmer pour poursuivre,") = vbYes Then
            With Application: .EnableEvents = False: .DisplayAlerts = False: End With    '-------Annulation des alertes
            [E3] = [E3].Text    ' remplace la cellule par sa valeur
            ' ActiveSheet.PrintOut copies:=1
            Sheets("Devis").Copy
            ActiveSheet.Shapes("Bouton1").Delete    ' on supprime le bouton dans le devis ".xlx"
            ActiveWorkbook.SaveAs Filename:=chemin & nom, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
            ActiveWindow.Close
            '---------------------Après l'archivage le fichier se réinitialise
            Sheets("Devis").Range("E3,E4,A13:G17,A19:F22,G27").ClearContents
            Sheets("Devis").Range("K5").Value = Sheets("Devis").Range("K5").Value + 1
            ThisWorkbook.Save    'il est revenu a l'initial on le sauve comme ca on garde la numerotation a jouret quand on fermera on sera pas obligé d'enregistrer
            Application.DisplayAlerts = True   '-------rétablissement des alertes
            Application.EnableEvents = True
        End If
    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

Discussions similaires

  1. [Vba] BDD : Excel + Access + Vba
    Par Emcy dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/11/2005, 11h23
  2. Ouverture d'un fichier Excel en VBA par Access
    Par illight dans le forum Access
    Réponses: 2
    Dernier message: 02/11/2005, 12h14
  3. Comment recupérer la version d'Excel avec VBA ?
    Par ikoto dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/09/2005, 19h51
  4. Création liste dans cellules Excel en VBA
    Par yazoo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/04/2005, 15h46
  5. Comment décaller un bloc de cellule Excel en VBA
    Par bbkenny dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/01/2005, 21h00

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