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 :

aide vba boucle for each paramétrée en range


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut aide vba boucle for each paramétrée en range
    bonjour tout le monde ,
    j'ai un petit soucis en vba

    je voudrais faire une boucle en for each en paramétrant ; ci-dessous un exemple simplifié


    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 Macro1() 
    Dim casse As Range 
     
    Set toto1 = Range("B10:G10" ) 
    Set toto2 = Range("b11:g11" ) 
     
     
    For i = 1 To 2 
    titi = "toto" & i 
    For Each casse In titi 
    casse.Value = 2 
    Next 
    Next i 
    End Sub
    voila le probleme est que titi n'est plus en range grrrrrrrrrrrrrr
    je ne vois pas comment faire si qq'un a une idée merci

    en fait j'ai plein de lignes paramétrées (du type toto_indicé)
    et je veux faire une boucle sur certaines ...ca marche si j'ecris 100 fois la meme boucle mais bon c'est plus de la programmation c'est du labeur :o)

    merci a ceux qui prendront le temps de lire ce post.
    eric

  2. #2
    Membre régulier Avatar de biggione
    Inscrit en
    Juillet 2006
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 99
    Points : 91
    Points
    91
    Par défaut
    as tu essayer de faire juste après titi = "toto" & i une selection de titi:
    titi.select
    puis tu continue avec ton code

    as tu essayer de faire juste après titi = "toto" & i une selection de titi:
    titi.select
    puis tu continue avec ton code soit:
    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 Macro1() 
    Dim casse As Range 
    Dim titi as range
    Set toto1 = Range("B10:G10" ) 
    Set toto2 = Range("b11:g11" ) 
     
     
    For i = 1 To 2 
    Set titi = "toto" & i 
    titi.select
    For Each casse In titi 
    casse.Value = 2 
    Next 
    Next i 
    End Sub
    Location saisonnière dans le Lot:
    http://www.lot-holidays.com

  3. #3
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    tiens j'ai un peu modifié ton code ...:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub Macro1()
    Dim casse As Range
    Dim titi As Range
    Dim MesTotos As Range
    Set MesTotos = Range("B10:G10,b11:G11,B20:G30")
    For Each titi In MesTotos.Rows
        Debug.Print titi.Address ' Voir Fenêtre exécution
          For Each casse In titi
            titi.Value = 2
          Next
    Next
    End Sub

  4. #4
    Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    merci biggione,

    je viens d'essayer mais il ne veut pas plus tourner
    j'ai même enlever le set devant titi car c'est la que cela bloqué mais ca ne change rien. Je pense que de concatener un byte avec un range le titi devient lui aussi un byte ou un string je sais pas.

    gotlieb.

  5. #5
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Une autre 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
    Sub Macro1()
      Dim i As Integer
      Dim casse As Range
      Dim titi As Range
      Dim toto(1) As String
     
      toto(0) = "B10:G10"
      toto(1) = "b11:g11"
     
     
      For i = 0 To 1
        Set titi = Range(toto(i))
        For Each casse In titi
          casse.Value = 2
        Next
      Next i
    End Sub
    Testé, ça marche.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  6. #6
    Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    merci bbil et alain tech

    vos deux versions marchent bien effectivement mais je préfére celle de alain car j'ai déja crée 81 totos et ca me parait plus simple de modifier mon code avec cette maniére.

    encore bravo et merci a tous les 2.

    ps: j'essaie pour m'amuser de faire un petit truc sur excel qui résolu les sudokus. Il existe plein de gens qui l'ont déja fait je sais mais le seul intêret est de le faire sois-même.

    gotlieb.

  7. #7
    Membre habitué Avatar de conconbrr
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Points : 198
    Points
    198
    Par défaut
    Pour le solveur de sudoku j'en ai fait un qui marche pas mal, si tu veux on pourra confronter

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

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. Boucle For each en VBA
    Par boby87000 dans le forum Général VBA
    Réponses: 3
    Dernier message: 01/09/2010, 11h53
  4. [VBA-E]PB sur une boucle for each next
    Par rond24 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 31/07/2006, 15h47
  5. [VBA-E] erreur boucle for each
    Par Mut dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/02/2006, 16h38

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