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 :

Pb fichier Excel


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
    Inscrit en
    Août 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 37
    Par défaut Pb fichier Excel
    Bonjour

    Trois jours de galère, je relance la question...

    Une macro VBA Word qui manipule (qui veut manipuler !) Excel.

    Elle fonctionne une fois puis chaque fois suivante elle déclenche une erreur 1024. même si je change de fichier (Test1.xlsx vers Test2.xlsx).

    Il faut fermer l'application Word pour que la macro fonctionne à nouveau une seule fois !

    Si quelqu'un pense à une piste ?

    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
     
        Dim XlApp As Object
        Dim XlBook As Object
        Dim Sheet1 As Object
        Dim Sheet2 As Object
        Dim DernLig As Integer
        Dim Msg As String
     
        Set XlApp = CreateObject("Excel.Application")
        Set XlBook = XlApp.Workbooks.Open("D:\Test1.xlsx")
        Set Sheet1 = XlBook.Worksheets(1)
        Set Sheet2 = XlBook.Worksheets(2)
     
        XlApp.Visible = True
        On Error Resume Next
     
        DernLig = Sheet2.Range("G65536").End(xlUp).Row
     
        Sheet1.Select
        XlBook.Sheets(1).Range(Cells(1, 1), Cells(5, 3)). _
            Font.Italic = True
     
        If Err.Number <> 0 Then
            Msg = "Erreur : " & Str(Err.Number) & "générée par " _
                & Err.Source & Chr(13) & Err.Description
            MsgBox Msg, , "Erreur", Err.HelpFile, Err.HelpContext
            Err.Clear
        End If
     
        XlBook.Close
        XlApp.Quit
        Set XlApp = Nothing
        Set Sheet1 = Nothing
    Cordialement
    Jean-Jacques

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Sur quelle ligne as-tu l'erreur ?

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 37
    Par défaut
    Bonjour

    J'ai un peu progressé car avec la gestion de l'erreur, il suffit de fermer le document Word pour recommencer. Avant, il fallait relancer la machine !

    Cela voudrait, aussi, dire que mon traitement de l'erreur n'est pas satisfaisant !

    J'ai enfin pu cerner l'erreur... et elle apparait sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sheet2.Range(Cells(2, 1)).Value = "I"
    alors que, par exemple,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Sheet2.Range("F1:F2690").Value = "M"
    fonctionne de même que les Copier/Coller du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sheet1.Columns(1).Copy Destination:=Sheet2.Cells(1, 11)
    Il semble donc que "Cells" n'est pas accepté avec Value ou... !

    Je souhaite remplir, par exemple, la colonne "F" de 1 à "DernLig" avec "M"
    Ici "DernLig = 2690", mais cela varie !

    J-J

  4. #4
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    Je souhaite remplir, par exemple, la colonne "F" de 1 à "DernLig" avec "M"
    Essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheet2.range("F1:F" & DernLig)="M"
    Tu ne peux pas écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheet2.Range(Cells(2, 1)).Value = "I"
    Pour affecter la valeur “I” à la cellule A2, tu dois écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheet2. Cells(2, 1)).Value = "I"
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheet2.Range(“A2”).Value = "I"

    Cordialement.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 37
    Par défaut
    Bonjour

    Merci...
    La ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sheet2.range("F1:F" & DernLig)="M"
    Fonctionne parfaitement.

    Deux questions

    1) Comment faire la même chose que ci-dessus avec "Cells" ?
    2) Y a-t-il une faute dans la gestion de mon erreur qui expliquerait que je puisse pas relancer ? C'est comme si le fichier restait ouvert !

  6. #6
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Citation Envoyé par jj37fr Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheet2.range("F1:F" & DernLig)="M"
    1) Comment faire la même chose que ci-dessus avec "Cells" ?
    l'écriture équivalente est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Cells(1, 6), Cells(DernLig, 6)) = "M"
    Cordialement,

    Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

    Didier

Discussions similaires

  1. Extraction de données sur des fichiers excel
    Par iupgeii dans le forum MFC
    Réponses: 3
    Dernier message: 23/01/2004, 13h53
  2. Enregistrement d'un fichier Excel par automation
    Par tiopan dans le forum Access
    Réponses: 2
    Dernier message: 04/12/2003, 19h57
  3. Sauvegarde fichier excel
    Par tiopan dans le forum VBA Access
    Réponses: 2
    Dernier message: 22/10/2003, 13h36
  4. [Turbo Pascal] Utiliser un fichier Excel
    Par Lady dans le forum Turbo Pascal
    Réponses: 10
    Dernier message: 09/03/2003, 20h34
  5. Réponses: 2
    Dernier message: 22/07/2002, 12h13

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