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

VBA Access Discussion :

Killer ce maudit processus EXCEL ! [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 46
    Points : 21
    Points
    21
    Par défaut Killer ce maudit processus EXCEL !
    Bonjour à tous,

    Je souhaite :
    - créer un export excel d'un formulaire donné
    - le mettre en forme via une macro vba excel
    Tout ceci marche bien.

    Mais lorsque je lance un DEUXIEME export à la suite du premier, le code ne s'éxécute pas, un message d'erreur apparaît. Après maintes manip', je me suis simplement rendu compte que la sub gérant les deux points ci-dessus ne fermait pas excel.

    Et malgré mes modifs dans le code, rien n'y fait, le processus "Excel" reste actif et m'empêche de relancer ma sub.

    Voici mon code :

    Code VBA :
    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
    Private Sub XLSCA_Click()
     
    Dim title, plant As String
    Dim sql, uniquepath, uniquename, uniquesheet, path As String
     
    title = NameStructure
    plant = NamePlant
     
    'ouvre et ferme le formulaire puis créée le xls
    Call CABuilder_Click
    DoCmd.OpenForm "CA"
    DoCmd.Close
     
    'défini le chemin de création
    path = remotepath & "\"
    'défini le nom du fichier
    uniquename = "CA_" & plant & "_" & title & ".xls"
    'défini le chemin complet
    uniquepath = path & uniquename
    'défini la feuille que l'on souhaite formater
    uniquesheet = "CA"
    'export excel en "background" ==> false
    DoCmd.OutputTo acOutputForm, "CA", acFormatXLS, uniquepath, False
     
    Dim xlApp As Excel.Application
    Dim wbk As Excel.Workbook
    Dim sht As Excel.Worksheet
     
    ' Créer un objet Excel (ce qui équivaut à démarrer Excel à distance)
    Set xlApp = CreateObject("Excel.Application")
    ' Ouvrir Classeur en background
    Set wbk = xlApp.Workbooks.Open(uniquepath)
    ' sélectionner la feuille en background
    Sheets(uniquesheet).Select
    ' appeler le module pour formater la sortie excel
    Call Format_CA(Sheets(uniquesheet), xlApp)
    ' Sauvegarder
    wbk.Save
    ' Quitter excel
    xlApp.Quit
    ' Rendre Excel visible !
    'xlApp.Visible = True
     
    End Sub

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 46
    Points : 21
    Points
    21
    Par défaut
    xlApp.kill() apparait en rouge dans ma fenêtre visual basic

    y'a-t-il des références à cocher ?

  3. #3
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 423
    Points : 20 001
    Points
    20 001
    Billets dans le blog
    67
    Par défaut
    Re,

    Regarde peut-être de ce côté.

    A+

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 46
    Points : 21
    Points
    21
    Par défaut
    Ca à l'air de marcher, moyennant quelques bugs, j'en dirai un peu plus plus tard

  5. #5
    Expert éminent sénior
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    bjr,

    Je serais d'avis de règler les problèmes en amont.
    "killer" un processus n'est pas une solution correcte.
    Si l'utilisateur à d'autres classeurs excels ouverts, cela ne va-t-il pas fermer son travail sans sauvegarde?

    Il ne faut pas appeler d'objet excel directement sans les préfixer :

    Dans :
    il n'est pas précisé le classeur dans lequel rechercher la feuille
    donc access recherche où il peut (sans doute le premier classeur trouvé ou le classeur actif mais rien n'est sûr) et crée un lien en mémoire qui n'est jamais libéré et qui empêche la fermeture d'excel

    Essayez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wbk.Sheets(uniquesheet)
    Si tout est bien préfixé (y compris dans la fonction Format_CA), les objets seront libérés et le processus excel doit se fermer proprement.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Mai 2010
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    La réponse de Arkham46 me semble très intéressante et beaucoup plus propre ! Je pense avoir le même problème dans mon programme en VB6 ( je ne sais pas si je devrais en parler ici mais bon, je me lance )
    Lorsque que je lance ma fonction, malgré la fermeture des l'application excel et ses classeurs, il me reste toujours un processus qui traine, ce qui m'empêche de relancer l'application une deuxième fois! J'ai donc repris mon code et bien précisé à chaque fois d'où provient chaque feuille et chaque classeur mais rien y fait ... Si vous voyez une quelconques erreurs dans le programme ci-dessus je vous en serai extrêmement reconnaissant.

    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
    fichier = CurDir & "\Template_Export - Base.xls"
    ' Création de l'objet Excel 
    Set xlApp = CreateObject("Excel.Application")
    Application.DisplayAlerts = False
    Set xlBook = xlApp.Workbooks.Add
    xlBook.SaveAs fichier
     
    xlBook.Worksheets(1).Name = "Inventaire"
    xlBook.Worksheets(2).Name = "Agnelage"
    xlBook.Worksheets(3).Delete
     
    Excel.Application.ScreenUpdating = False 
    Excel.Application.Calculation = xlCalculationManual
     
    xlBook.Worksheets(1).Cells(1, 1).Value = "N° nat *"
    xlBook.Worksheets(1).Cells(1, 2).Value = "N° travail *"
    xlBook.Worksheets(1).Cells(1, 3).Value = "Sexe *"
    xlBook.Worksheets(1).Cells(1, 4).Value = "Date naiss. *"
    xlBook.Worksheets(1).Cells(1, 5).Value = "Catégorie *"
     
    xlBook.Worksheets(2).Cells(1, 1).Value = "N° national"
    xlBook.Worksheets(2).Cells(1, 2).Value = "N° Travail"
    xlBook.Worksheets(2).Cells(1, 3).Value = "Date"
    xlBook.Worksheets(2).Cells(1, 4).Value = "Cond.Agn."
    xlBook.Worksheets(2).Cells(1, 5).Value = "Avort"
     
    xlBook.Worksheets(1).Columns("D:D").NumberFormat = "mm/dd/yyyy"
    xlBook.Worksheets(1).Columns("H:H").NumberFormat = "mm/dd/yyyy"
     
    ' Formater l'object Range
    Set xlRange = xlBook.Worksheets(1).Range("A2") ' Origine de la copie
    Set xlRange = xlRange.Resize(UBound(TabI), UBound(TabI, 2)) ' Plage reformatée pour correspondre exactement en taille au tableau
     
    ' Affecter le tableau à la plage de cellules
    xlRange.Value = TabI()
     
    ' On change de feuille pour remplir les agnelages.
     
    ' Formater l'object Range
    Set xlRange = xlBook.Worksheets(2).Range("A2") ' Origine de la copie
    Set xlRange = xlRange.Resize(UBound(TabJ), UBound(TabJ, 2)) ' Plage reformatée pour correspondre exactement en taille au tableau
     
    xlRange.Value = TabJ()
     
    xlBook.Worksheets(1).Columns("A:A").AutoFit
    xlBook.Worksheets(2).Columns("A:A").AutoFit
    xlBook.Worksheets(2).Columns("H:H").AutoFit
     
    Excel.Application.Calculation = xlCalculationAutomatic
    Excel.Application.ScreenUpdating = True
     
    'Sauvegarde
    xlBook.SaveAs FileName:=CurDir & "\Template_Export.xls"
     
     
    'Fermeture
    xlBook.Close
    Set xlBook = Nothing
     
    xlApp.Quit
    Set xlApp = Nothing

    Edit : J'ai trouvé ! je vous post la solution au cas ou d'autre personnes aurait le même problème !
    Cela venez des lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Excel.Application.ScreenUpdating = False 
    Excel.Application.Calculation = xlCalculationManual
    Apparament cela créer une autre instance d'Excel, il faut donc les remplacer par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    xlApp.ScreenUpdating = False 
    xlApp.Application.Calculation = xlCalculationManual

  7. #7
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 423
    Points : 20 001
    Points
    20 001
    Billets dans le blog
    67
    Par défaut
    Bien évidemment la solution d'Arkham est indispensable

    Toujours privilégier un code propre plutôt que du bricolage

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 46
    Points : 21
    Points
    21
    Par défaut
    Bonjour !

    Eh bien pour moi le problème n'est pas résolu, et j'aimerais également ne pas avoir à faire du bricolage.

    Voici mon code :

    Code "VBA : 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
     
             Dim uniquepath as string 'chemin de sortie
             'export excel
            DoCmd.OutputTo acOutputForm, "OUTPUTAMR", acFormatXLS, uniquepath, False
     
            Dim xlApp As Excel.Application
            Dim wbk As Excel.Workbook
     
            ' Créer un objet Excel (ce qui équivaut à démarrer Excel à distance)
            Set xlApp = CreateObject("Excel.Application")
            ' Ouvrir Classeur en background
            Set wbk = xlApp.Workbooks.Open(uniquepath)
            'myApp.Visible = True
     
            ' appeler le module pour formater la sortie excel
            Call Format_AMR(wbk.Sheets(uniquesheet), xlApp)
     
            ' Quitter excel
            xlApp.DisplayAlerts = False
            wbk.SaveAs FileName:=uniquepath, FileFormat:=xlExcel8
            xlApp.DisplayAlerts = True
            wbk.Close
            xlApp.Quit
     
            ' reset des variables
            Set xlApp = Nothing
            Set wbk = Nothing

    1) Je lance une première fois la sub, le fichier est créé, la macro de formatage Format_AMR s'éxécute normalement, wbk.close et xlApp.Quit semblent s'effectuer (vérifier avec le débuggeur et points d'arrêt)

    MAIS le processus excel tourne encore en background

    2) je tente de lancer une nouvelle fois la sub, erreur 462 : "le serveur distant n'existe pas ou n'est pas disponible", parfois une autre erreur qui me dit "la méthode global_ de l'objet columns a échoué".

    L'exécution s'arrête dans la sub de formatage Format_AMR au tout début (une sélection de colonne simpe Columns("F:F").Select)

    Merci de votre aide.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 46
    Points : 21
    Points
    21
    Par défaut
    Personne n'a d'idée ?

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 427
    Points : 520
    Points
    520
    Par défaut
    Bonjour,

    Dans toutes mes automations, j'utilise cette fonction :
    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
    Public Function ouvreExcel(xlsapp As Excel.Application) As Boolean
    Dim xlOpen As Boolean
        'Ouverture d'Excel si pas ouvert
        On Error Resume Next
        ERR.Clear
            Set xlsapp = GetObject(, "Excel.Application")
            If ERR.Number <> 0 Then
                'Debug.Print ERR.Number
                xlOpen = False
            Else
                xlOpen = True
            End If
        Resume
        ERR.Clear
        If Not xlOpen Then
            Set xlsapp = CreateObject("Excel.Application")
        End If
        ouvreExcel = xlOpen
    End Function
    Je stocke le résultat dans une variable. Ceci permet de détecter l'existence d'un process excel et donc de n'utiliser qu'une seule instance.
    En fin de code je vérifie l'existence antérieure du code et selon je ferme mon classeur, quitte excel et désalloue ou je laisse excel ouvert.

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 46
    Points : 21
    Points
    21
    Par défaut
    C'est une bonne idée, ça m'a permis de résoudre un problème sur un autre projet.

    Mais dans le cas présent, ça ne marche toujours pas...

    Avec un truc comme ça (j'ai créé la sub intermédiaire Check() parce que j'ai besoin d'appeler ce truc là un certain nombre de fois par ailleurs)

    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
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    Option Compare Database
     
    Public Function ouvreExcel(xlsapp As Excel.Application) As Boolean
    Dim xlOpen As Boolean
        'Ouverture d'Excel si pas ouvert
        On Error Resume Next
        Err.Clear
            Set xlsapp = GetObject(, "Excel.Application")
            If Err.Number <> 0 Then
                'Debug.Print ERR.Number
                xlOpen = False
            Else
                xlOpen = True
            End If
        Resume
        Err.Clear
        If Not xlOpen Then
            Set xlsapp = CreateObject("Excel.Application")
        End If
        ouvreExcel = xlOpen
    End Function
     'Je stocke le résultat dans une variable. Ceci permet de détecter l'existence d'un process excel
     'et donc de n'utiliser qu'une seule instance.
    'En fin de code je vérifie l'existence antérieure du code et selon je ferme mon classeur,
    'quitte excel et désalloue ou je laisse excel ouvert.
     
    Public Sub Check(xlCheck As Excel.Application)
    Dim ouvert As Boolean
     
    ' vérifie qu'une seule instance est ouverte, sinon, ferme l'instance ouverte
        ouvert = ouvreExcel(xlCheck)
        Select Case ouvert
        Case True
            xlCheck.Quit
            Set xlCheck = Nothing
        Case False
        End Select
     
    End Sub
     
     
    Private Sub XLSAMR_Click(title as string, plant as string)
    '-------------------------------------------------------------
    'Output xls de l'AMR (structure courante)
    '-------------------------------------------------------------
    '
    '
    '
    '
    '
    ' Définition des variables
    Dim sql, uniquepath, uniquename, uniquesheet, path, workdate As String
    Dim idS As Long
    Dim rst As DAO.Recordset
    Dim odb As DAO.Database
     
    Set odb = CurrentDb
     
     
            'définit le chemin de création
            path = remotepath & "\"
            'définit le nom du fichier
            workdate = Replace(CurrentDate, "/", "-")
            uniquename = "AMR_" & plant & "_" & title & "_" & workdate & ".xls"
            'défini le chemin complet
            uniquepath = path & uniquename
            'défini la feuille que l'on souhaite formater
            uniquesheet = "OUTPUTAMR"
     
            'export excel en "background" ==> false
            DoCmd.OutputTo acOutputForm, "OUTPUTAMR", acFormatXLS, uniquepath, False
     
            Dim xlApp As Excel.Application
            Dim xlCheck As Excel.Application
            Dim wbk As Excel.Workbook
     
            ' Créer un objet Excel (ce qui équivaut à démarrer Excel à distance)
            Set xlApp = CreateObject("Excel.Application")
            ' Ouvrir Classeur en background
            Set wbk = xlApp.Workbooks.Open(uniquepath)
     
            ' appeler le module pour formater la sortie excel
            Call Format_AMR(wbk.Sheets(uniquesheet), xlApp)
     
            ' Quitter excel
            xlApp.DisplayAlerts = False
            wbk.SaveAs FileName:=uniquepath, FileFormat:=xlExcel8
            xlApp.DisplayAlerts = True
            wbk.Close
            xlApp.Quit
     
            ' reset des variables
            Set xlApp = Nothing
            Set wbk = Nothing
     
            ' vérification des instances ouvertes et femrture si ouverte
            Call Check(xlCheck)
     
    End Sub

  12. #12
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 423
    Points : 20 001
    Points
    20 001
    Billets dans le blog
    67
    Par défaut
    Salut,

    Je ne suis pas sûr que ça change grand chose, mais normalement tu dois libérer tes variables comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ...
    wbk.Close
    Set wbk = Nothing
     
    xlApp.Quit   
    Set xlApp = Nothing
    ...
    Par contre, peux-tu nous donner le code de la fonction Format_AMR ?


  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 46
    Points : 21
    Points
    21
    Par défaut
    J'ai tenté la modif de code, qui ne fonctionne pas.

    Voici la substance de Format_AMR :

    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
    Public Sub Format_AMR(ByRef mySheet As Worksheet, myApp As Excel.Application)
     
    ' DEPLACEMENT DES COLONNES
     
        Columns("F:F").Select
        Selection.Cut
        Columns("A:A").Select
        Selection.Insert Shift:=xlToRight
     
        Columns("H:H").Select
        Selection.Cut
        Columns("B:B").Select
        Selection.Insert Shift:=xlToRight
     
    ' FAIRE LA FUSION
     
    myApp.DisplayAlerts = True
     
    'code de fusion de colonnes, qui marche lorsqu'appliqué dans excel directement et qui s'éxécute normalement
    'au premier appel de la sub comme explicité dans le message d'hier
    '(prend mysheet en argument)
     
    myAppDisplayAlerts = False 'pour éviter les messages lors de la fusion des cases
     
    End Sub
    Comme explicité plus haut, le code bug au deuxième appel (sûrement parce qu'après le premier appel; un processus excel continue de tourner) au niveau de Columns("F:F").Select

  14. #14
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 423
    Points : 20 001
    Points
    20 001
    Billets dans le blog
    67
    Par défaut
    Re,

    Même chose : il te faut préfixer tes commandes Excel (voir remarque de Arkham), je ne connais pas trop Excel mais cxa doit ressembler à cela...

    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
    Public Sub Format_AMR(ByRef mySheet As Worksheet, myApp As Excel.Application)
     
    ' DEPLACEMENT DES COLONNES
     
        mySheet.Columns("F:F").Select
        myApp.Selection.Cut
        mySheet.Columns("A:A").Select
        myApp.Selection.Insert Shift:=xlToRight
     
        mySheet.Columns("H:H").Select
        myApp.Selection.Cut
        mySheet.Columns("B:B").Select
        myApp.Selection.Insert Shift:=xlToRight
     
    ' FAIRE LA FUSION
     
    myApp.DisplayAlerts = True
     
    'code de fusion de colonnes, qui marche lorsqu'appliqué dans excel directement et qui s'éxécute normalement
    'au premier appel de la sub comme explicité dans le message d'hier
    '(prend mysheet en argument)
     
    myApp.DisplayAlerts = False 'pour éviter les messages lors de la fusion des cases
     
    End Sub

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 46
    Points : 21
    Points
    21
    Par défaut
    Effectivement, on arrive à s'en sortir comme ça.

    C'est un peu frustrant toutefois, parce que j'ai essayé un

    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With mysheet
     
    .Columns("A:A")
    'etc.
     
    End with

    Donc avec un with et des . partout là où ils vont bien, et dans ce cas là, on retombe sur le même problème évoqué en début de thread.

    La solution la plus viable est donc celle donnée par User.

    Merci !

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

Discussions similaires

  1. Application Excel - Tuer le processus EXCEL.EXE?
    Par xVINCEx dans le forum VB.NET
    Réponses: 21
    Dernier message: 18/04/2012, 11h43
  2. VB6: tuer le processus Excel
    Par Svart26 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/07/2006, 09h02
  3. [VB6] Terminer Processus Excel
    Par aurelien2723 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 05/05/2006, 16h38
  4. [VBA-A]pb ouvrir processus excel
    Par JulienCEA dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/02/2006, 11h50
  5. processus excel
    Par CharleLéo dans le forum Langage
    Réponses: 4
    Dernier message: 25/10/2005, 12h49

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