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 :

blocage d'un code d'enregistrement [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Par défaut blocage d'un code d'enregistrement
    bonjour a vous tous

    j'ai télécharger le classeur "facturier devis" que Patrick TOULON" a mis dans les contribution mais j'ai un petit soucis avec le code car il enregistre bien ma feuille mais ouvre un panneau qui indique
    erreur d'excécution 1004
    puis débogage a la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.VBProject.VBComponents.Remove VbComp

    qui fait partie du code ci dessous
    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
    Private Sub enregistrer_Click()
    Dim Vbcomp As vbcomponent    
    Dim nom, chemin As Variant
    Sheets("facturation").Copy
    Sheets(1).Name = "facture1"
          nom = "fact-" & Sheets("facture1").Range("b11").Value & "-" & Sheets("facture1").Range("g4").Value & ".xls"
    chemin = ThisWorkbook.Path & "\DEVIS\"
    
        ActiveWorkbook.SaveAs Filename:=chemin & nom, _
            FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
            ReadOnlyRecommended:=False, CreateBackup:=False
    
    For Each VbComp In ActiveWorkbook.VBProject.VBComponents
    Select Case VbComp.Type
    Case 1 To 3
    ActiveWorkbook.VBProject.VBComponents.Remove VbComp
    Case Else
    With VbComp.CodeModule
    .DeleteLines 1, .CountOfLines
    End With
    End Select
    Next VbComp
    'Sauvegarde les modifications
    ActiveWorkbook.Save
    ActiveWindow.Close
    Sheets("facturation").Activate
    End Sub
    cordialement

    Pascal

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonsoir,

    Si je me souviens bien, il faut cocher la case "Accès approuvé au modèle d'objet du projet VBA" ou quelque chose dans le genre (ici pour Excel 2007). Voir dans macro > sécurité ?

    Hervé.

  3. #3
    Membre éclairé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Par défaut
    bonjour THEZE

    merci de ta réponse mais cela n'a rien changé même en cochant la case "Accès approuvé au modèle d'objet du projet VBA"

    merci quand même

    Pascal

  4. #4
    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 grizan

    effectivement ca tellement vite que des fois sa bug

    peut etre declarer les classeur en variables au departs ca donne ca:


    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
    Private Sub enregistrer_Click()
     
    dim wk1,wk2 as workbook
    wk1=thisworkbook.name
    Dim Vbcomp As vbcomponent    
    Dim nom, chemin As Variant
    Sheets("facturation").Copy
    Sheets(1).Name = "facture1"
          nom = "fact-" & Sheets("facture1").Range("b11").Value & "-" & Sheets("facture1").Range("g4").Value & ".xls"
    chemin = ThisWorkbook.Path & "\DEVIS\"
     
        ActiveWorkbook.SaveAs Filename:=chemin & nom, _
            FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
            ReadOnlyRecommended:=False, CreateBackup:=False
    wk2=activeworkbook.name 
    For Each VbComp In wk2.VBProject.VBComponents
    Select Case VbComp.Type
    Case 1 To 3
    wk2.VBProject.VBComponents.Remove VbComp
    Case Else
    With VbComp.CodeModule
    .DeleteLines 1, .CountOfLines
    End With
    End Select
    Next VbComp
    'Sauvegarde les modifications
    wk2.Save
    ActiveWindow.Close
    Sheets("facturation").Activate
    End Sub
    mais bon je n'est pas testé et c'est vrai que je ne comprend pas l'erreur

    je vais voir un peu ce qui a bien pu se passer

    au plaisir
    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

  5. #5
    Membre éclairé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Par défaut
    bonjour Patrick

    il y a maintenant un nouveau bug a la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wk2 = ActiveWorkbook.Name

    avec
    wk2 qui indique "nothing"
    au passage de la souris
    comme tu a mon fichier tu peut peut-etre trouver la solution plus rapidement

    cordialement

    Pascal

  6. #6
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Pascal, je pense que l'utilisation de VBComponent nécessite d'activer la référence Microsoft Visual Basic for Applications Extensibility

    Attention à la déclaration de vos variables !

    Ceci n'est pas correct
    Citation Envoyé par patricktoulon Voir le message
    dim wk1,wk2 as workbook
    La bonne déclaration est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim wk1 As Workbook, wk2 As Workbook
    .

    Ensuite si la variable est déclarée de type "Workbook", ceci n'est pas correct non plus
    Citation Envoyé par patricktoulon Voir le message
    wk1=thisworkbook.name
    La bonne syntaxe est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set wk1 = ThisWorkbook


    Idem pour wk2

  7. #7
    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
    bonsoir fring

    oupss effectivement je me suis trompé

    enfet tu a raison
    sinon c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim wk1 as string,wk2 as string
    'et a ce momment pour wk1 c'est thisworbook.name 
    'et le wk2 c'est activeworkbook.name
    puré je fume du cerveau c'est la faute de grizan il trans forme toutes mes macros c'est ca faute ,c'est sa faute voila c'est tout


    au plaisir
    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

  8. #8
    Membre éclairé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Par défaut
    bonjour a fring et Patrick

    merci de vos réponse et désolé si je fait fumé les neurrones, mais le résultat est le même au même endroit mais est ce parce que le verificateur de compatibilité qui se met en route et affiche
    Ce classeur contient des feuilles de calculs utilisant des entetes et des pieds de pages sur les pages paires ou sur la première page
    Ces entetes et pieds de pages ne peuvent etre utilisé dans les versions antérieures d’excel.
    Emplacement :’facture1’
    donc je rappelle que ce pc de bureau est sous windows xp et office 2007
    et mon portable dédié a mon travail sous windows7pro et office 2007 et mon fichier sera sur les 2 mais surement que je mettrai windows7 sur celui ci un peu plus tard

    ou bien y a-t-il un moyen de desactivé le verificateur??? sans causé de soucis

    voila messieurs

    cordialement
    Pascal

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

Discussions similaires

  1. ajout d'un ouverture de classeur apres un code d'enregistrer-sous ?
    Par lebeniste dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 05/04/2008, 17h10
  2. [Access] Problème dans le code d'enregistrement de saisies?
    Par zorba49 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 21/06/2007, 13h18
  3. code pour enregistré un fichier sous different nom
    Par france38 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 28/10/2006, 14h31
  4. Réponses: 1
    Dernier message: 28/10/2006, 10h43
  5. Code d'enregistrement
    Par ariel555 dans le forum Access
    Réponses: 1
    Dernier message: 05/04/2006, 10h32

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