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 :

Boucle For each cell in Range(.)


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
    Étudiant
    Inscrit en
    Août 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2015
    Messages : 10
    Par défaut Boucle For each cell in Range(.)
    Bonjour à tous et à toutes,

    Dans le cadre de mon travail, j'ai besoin d'une macro correctif sous VBScript de telle sorte que pour une plage de données contenant des valeurs numériques d'un fichier excel, je puisse éxécuter une certaine opération pour chaque contenu des cellules. Il s'agîrait de quelque chose comme ça :

    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
     
    Sub chargements()
     
    Dim contrats As Range
    Dim cell As Range
    Set contrats = Range("G7:G16")    'plage d'exemple
     
    For Each cell In Range("G7:G16")
    'Faire une opération pour chaque cellule de la plage, notamment une ligne de l'opération qui comprendrait le numéro du contrat auquel je souhaite faire un correctif (l'opération) :
    autECLSession.autECLPS.SendKeys "6853740"
    '(...suite opération)
    'où 6853740 est le numéro de contrat. Je veux faire cette opération pour chaque contrat dont les numéros sont contenus dans la plage G7:G16 (un numéro par cellule).
    Next cell
     
    End sub
    Ma question est par quoi remplacer "6853740" pour qu'il fasse la suite de l'opération pour chaque cellule?

    Je vous remercie par avance de vos réponses!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    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
    Sub chargements()
     
    Dim contrats As Range
    Dim cell As Range
    Set contrats = Range("G7:G16")    'plage d'exemple
     
    For Each cell In contrats
        SuiteOperation CStr(cell(1, 1).Value)
    Next cell
     
    End Sub
    Sub SuiteOperation(Contrat As String)
        autECLSession.autECLPS.SendKeys Contrat
        'Faire une opération pour chaque cellule de la plage, notamment une ligne de l'opération qui comprendrait le numéro du contrat auquel je souhaite faire un correctif (l'opération) :
     
    '(...suite opération)
    'où 6853740 est le numéro de contrat. Je veux faire cette opération pour chaque contrat dont les numéros sont contenus dans la plage G7:G16 (un numéro par cellule).
    End Sub
    ceci dit, vba n'est pas VBScript et il faudra remanger ton code si tu veux le faire tourner en VBScript !

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2015
    Messages : 10
    Par défaut
    Bonjour rdurupt,

    Effectivement VBScript n'est pas VBA mais je n'ai que cette solution pour m'inspirer.
    D'ailleurs, sur un fichier de type VBScript (fichier texte), sauriez-vous comment appeler la plage de données du fichier excel?

    Quelque chose du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Workbooks.Open Filename:= _
            "C:\Documents and Settings\xxx\Bureau\Classeur1"
    peut être ? (où classeur1 contient ma plage G7:G16)

    Merci par avance si vous connaissez la réponse.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Vbscript n'accepte pas les types, de plus il faut déclarer tous les objets Excel!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     dim Xls
    Dim Wb
    Dim Sh
    Dim plage
    Set xls=creatobject("Excel.application")
    Xls.visible=True
    Set wb=xls.workbooks.add
    Set sh =wb.sheets.add
    Set plage=sh.range("a1:b10")
    Plage ="toto"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set wb= xls.Workbooks.Open
    Tu peux créer des variables Dim ma variable pas de types du genre as string
    De fonctions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    funtion Myqfuncion(permettre)
    Myqfuncion = permettre
    End function
    Toujours pas de typage!
    Des sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sub Mysub(paramètre)
    Msgbox paramètre
    End sub
    Encore et toujours pas de typage

    Le programme en principal toujours appelé hors d'une sub ou d'une fonction!

    Mysub "Toto"
    Dernière modification par Invité ; 20/10/2015 à 19h01.

Discussions similaires

  1. [XL-2013] Décrémenter une boucle For Each Cell in Range ?
    Par ldubs dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/12/2014, 17h41
  2. [XL-2007] Excel VBA - For each c in range - cell address?
    Par phil7578 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/05/2011, 10h19
  3. test avant d'entrer dans une boucle For each cell in selection
    Par totoro02 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 13/01/2009, 09h27
  4. aide vba boucle for each paramétrée en range
    Par gotlieb dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/07/2006, 08h55
  5. Boucle For each
    Par roots_man dans le forum ASP
    Réponses: 10
    Dernier message: 18/02/2005, 09h55

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