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 :

coder un traitement plusieurs fois à une même page web en vba [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 128
    Points : 61
    Points
    61
    Par défaut coder un traitement plusieurs fois à une même page web en vba
    Bonjour,
    je veux coder un affichage plusieurs fois à un même site internet, comme ça j'aurai à traiter plusieurs personne à la fois dans plusieurs fenêtre contenant le même site web.
    Mais le code suivant me traite toutes les personnes sur une seule page et ça écrase une après une, il me reste que la dernière personne:

    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
    Sub IE_ATTENTE(ByVal IE As InternetExplorer)
     
    Do While IE.ReadyState <> READYSTATE_INTERACTIVE
        DoEvents
    Loop
    Do While IE.ReadyState <> READYSTATE_COMPLETE
        DoEvents
    Loop
    End Sub
     
    Sub REMPLISSAGE()
    Dim IE As New InternetExplorer
    Dim Sh As Worksheet
    Const stURL As String = "http://www.xxx.xxx"
     
    for i = 1 to 30
     
    IE.navigate stURL
    IE.Visible = True
    IE_ATTENTE IE
    Set Sh = ThisWorkbook.Worksheets("Feuil1")
    With IE.Document
    .getElementsByName("Nom").Item.Value = Sh.Range("A" & i).Value
     
    .getElementsByName("Adresse").Item.Value = Sh.Range("B" & i).Value 
     
    .getElementsByName("Ville").Item.Value = Sh.Range("C" & i).Value
    end with
    next i
    end sub
    Voilà si vous pouvez m'aider!

    cdt,
    SKIp

  2. #2
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    Salut
    A aucun moment tu ne valide les donnée que tu saisies dans ta page web, il est donc normal que tu écrases les données déjà inscrite lors des itérations suivantes.
    Tu dois avoir un bouton sur ta page web, regarde cette discussion elle te permettra sans doute de résoudre ton problème.
    Il me semble même, mais je ne retrouve plus l'info, que les pages web de type formulaire, comme tu sembles la décrire, possèdent une fonction "validate"(sauf que c'est pas ce nom la) ce sujet date un peux et je n'y ai pas retouché depuis, va bientôt falloir d'ailleurs .

    ++
    Qwaz

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 128
    Points : 61
    Points
    61
    Par défaut
    Bonjour,
    En fait je peux ajouter l'option de validation, mais je ne veux pas le faire.
    Avant tout je dois vérifier les données avant de valider. C'est pour cela que j'ai opté pour l'ouverture plusieurs fois de la même page qui contient chacune le formulaire avec les différentes données pour chaque personne qui sont entrées à partir de la macro.

    est ce que c'est possible?
    Cdt,
    SKIP

  4. #4
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    Salut
    Si bien sur c'est possible

    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
    Sub IE_ATTENTE(ByVal IE As InternetExplorer)
     
    'Do While IE.ReadyState <> READYSTATE_INTERACTIVE
    '    DoEvents
    'Loop
    Do While IE.ReadyState <> READYSTATE_COMPLETE
        DoEvents
    Loop
    End Sub
     
    Sub CallIE(Nom As String, Adresse As String, Ville As String)
    Dim IE As New InternetExplorer
    Const stURL As String = "http://www.Google.fr"
     
        IE.navigate stURL
        IE.Visible = True
        IE_ATTENTE IE
        With IE.Document
            .getElementsByName("Nom").Item.Value = Nom
     
            .getElementsByName("Adresse").Item.Value = Adresse
     
            .getElementsByName("Ville").Item.Value = Ville
        End With
     
    Set IE = Nothing
    End Sub
     
     
    Sub Remplissage()
    Dim i As Integer
    Dim Sh As Worksheet
     
    Set Sh = ThisWorkbook.Worksheets("Feuil1")
     
     
    With Sh
        For i = 1 To 30
            CallIE .Range("A" & i), .Range("B" & i), .Range("C" & i)
        Next
    End With
     
     
    End Sub

    [Edit]
    Tu peux même faire comme ça pour définir directement la taille de ton tableau sans avoir a le modifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Remplissage()
    Dim i As Integer
    Dim Sh As Worksheet
     
    Set Sh = ThisWorkbook.Worksheets("Feuil1")
     
    With Sh
        For i = 1 To .Cells(Rows.Count, "A").End(xlUp).Row
            CallIE .Range("A" & i), .Range("B" & i), .Range("C" & i)
        Next
    End With
     
    End Sub
    [/Edit]
    ++
    Qwaz

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 128
    Points : 61
    Points
    61
    Par défaut
    Bonjour,

    Normalement ça marches mais juste une chose si j'ai des variables comme ça:

    "_Nom_variable"

    Le code m'affiche une erreur au niveau du premier tiret du 8 quand je les déclares comme paramètres de CallIE.
    Il n'y a pas une astuce pour contourner cette erreur parce que la variable je ne peux vraiment pas la modifier.

    Cdt,
    SKIP

  6. #6
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    Salut
    Je ne suis pas ton raisonnement, tu peux donner un exemple. Tu veux rentrer une variable, ou la valeur contenu dans une variable?
    ++
    Qwaz

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 128
    Points : 61
    Points
    61
    Par défaut
    ça y est j'ai résolu le problème!!

    Merçi encore!!!

    SKIP

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

Discussions similaires

  1. [AC-2003] Exécuter plusieurs fois une même requête ajout avec le même paramètre.
    Par paulojbt9 dans le forum VBA Access
    Réponses: 3
    Dernier message: 01/07/2011, 10h34
  2. Utiliser plusieurs fois une même fonction
    Par ledisciple dans le forum Langage
    Réponses: 20
    Dernier message: 13/02/2010, 12h47
  3. Application de plusieurs styles à une même page html
    Par melek_net dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 29/03/2008, 12h04
  4. Est-il possible d'ouvrir plusieurs fois la même page en cliquant sur un même lien ?
    Par aweb01 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 16/05/2006, 20h05
  5. Réponses: 3
    Dernier message: 15/05/2006, 19h04

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