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 :

instruction WITH détruit l'objet et c'est le pb


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
    En formation de développeur logiciel
    Inscrit en
    Janvier 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : En formation de développeur logiciel

    Informations forums :
    Inscription : Janvier 2019
    Messages : 13
    Par défaut instruction WITH détruit l'objet et c'est le pb
    Bonjour, à tous, je reviens une nouvelle fois vers vous qui êtes bien meilleurs que moi afin de trouver la solution à un pb qui m'empêche d'avancer dans la conception d'une macro EXCEL.
    C'est une macro qui automatise le remplissage d'un champ sur une page internet et clique sur ok. Le pb est qu'avec l'instruction WITH détruit l'objet et ferme instantanément la page Chrome alors que j'aimerai la laisser ouverte.

    Je suis certain qu'il existe une solution simple enfin j'espère pour ainsi terminer ce petit développement et je m'en remets à vous bien cordialement


    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
     
    Public i As Integer
    Public Obj As WebDriver
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        Set Obj = New ChromeDriver
        Dim Enr_cellule As String
     
        ' Variables du compteur
        Dim x As Integer
        Dim y As Integer
        Dim z As Integer
     
    saisieLongueurPC = 14  'Application.InputBox(" Veuillez saisir la longueur du PC ")
    saisieLongueurEXP = 6 'Application.InputBox(" Veuillez saisir la longueur de la date de PER ")
    saisieLongueurLOT = 8 ' Application.InputBox(" Veuillez saisir la longueur du lot ")
    saisieLongueurSN = 16 'Application.InputBox(" Veuillez saisir la longueur de la date de SN ")
     
    Worksheets("Feuil1").Activate
    i = 1 + Numrows
     
     
            ' Vérifie si la cellule modifiée se trouve dans la plage A1:A10
              If Not Intersect(Target, Range("A1:A1000")) Is Nothing Then
     
            ' Numéro dernière ligne remplie = dernier enregistrement
              Numrows = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
     
     
    For x = 1 To Numrows
     
              y = x
              Enr_cellule = Range(("A") & y).Value
     
              PC = "(01)" + Mid(Enr_cellule, 3, saisieLongueurPC)
              PER = "(17)" + Mid(Enr_cellule, 19, saisieLongueurEXP)
              LOT = "(10)" + Mid(Enr_cellule, 27, saisieLongueurLOT)
              SN = "(21)" + Mid(Enr_cellule, 38, saisieLongueurSN)
     
             'la cellule B1 recoit son affectation ici
              Range(("B") & y).Value = PC + PER + LOT + SN
              Enr_formatte = Range(("B") & y).Value
     
    Next
     
         With Obj
     
            .Start "Chrome"
             .Get URL
            ' remplis les champs de connection '
             .FindElementById("Username").SendKeys "OPER"
             .FindElementById("Password").SendKeys "0000"
     
              Application.WindowState = xlMaximized
     
            ' clique pour se connecter
             .FindElementByCss("input[value='OK']").Click
     
            ' Stoppe toutes les activités d'Excel
              Application.Wait DateAdd("s", L, Now)
     
             'la cellule B1 recoit son affectation ici
              Range(("B") & y).Value = PC + PER + LOT + SN
              Enr_formatte = Range(("B") & y).Value
     
            ' copie la variable dans le champ voulu
             .FindElementById("UnitCode").SendKeys Enr_formatte
            ' clique sur le bouton
             .FindElementById("SearchParentBtn").Click
     
              ActiveWindow.WindowState = xlMaximize
     
          End With
     
    End If
     
    End Sub

  2. #2
    Membre averti
    Homme Profil pro
    En formation de développeur logiciel
    Inscrit en
    Janvier 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : En formation de développeur logiciel

    Informations forums :
    Inscription : Janvier 2019
    Messages : 13
    Par défaut
    une âme charitable ?

  3. #3
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 241
    Par défaut
    Hello,
    comme ton objet est déclaré dans une procédure, il est détruit par le "compteur de références" quelque temps après que ta procédure soit terminée.
    Si tu le définis en global ( en début d'un module par exemple), il n'est pas détruit quand tu l'appelles dans une procédure et que tu sors de la procédure. C'est à toi à le détruire.
    Ami calmant, J.P

  4. #4
    Membre averti
    Homme Profil pro
    En formation de développeur logiciel
    Inscrit en
    Janvier 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : En formation de développeur logiciel

    Informations forums :
    Inscription : Janvier 2019
    Messages : 13
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    Hello,
    comme ton objet est déclaré dans une procédure, il est détruit par le "compteur de références" quelque temps après que ta procédure soit terminée.
    Si tu le définis en global ( en début d'un module par exemple), il n'est pas détruit quand tu l'appelles dans une procédure et que tu sors de la procédure. C'est à toi à le détruire.
    Ami calmant, J.P
    Merci Merci Merci beaucoup, j'ai mis en variable globale dans un module à part et cela marche

    Vous n'imaginez pas depuis le temps que je cherchais
    Encore merci

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

Discussions similaires

  1. AS400 SQL et instruction WITH
    Par Arrnno dans le forum DB2
    Réponses: 8
    Dernier message: 28/11/2012, 14h06
  2. Réponses: 3
    Dernier message: 02/11/2011, 09h30
  3. [XL-2007] Imbriquer des Instructions with
    Par chris09300 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 08/02/2011, 16h59
  4. problème instruction With avec le bouton commande
    Par cecilecedric dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 11/01/2009, 22h07
  5. Question sur instruction With imbriquée
    Par LadyWasky dans le forum Bases de données
    Réponses: 2
    Dernier message: 14/10/2005, 11h26

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