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 :

Comment fonctionne le For Each ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 147
    Par défaut Comment fonctionne le For Each ?
    Bonjour à tous,
    Voila j'ai un petit bout de code qui devrais me copier dans une plage selectionnée une formule dans toute la selection.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim Ligne As Variant 'Je n'ai pas trouver la collection qui désigne une cellule et Cells ne fonctionne pas
     
    Range("C2", Columns(2).Range("A2").End(xlDown).Offset(0,1)).Select
    For Each Ligne In Selection
    Ligne.Formula = "=Maformule"
    Next
    Mais problème, cela ne marche pas... Fallais s'en douter ^^
    Sur la ligne .formula ca me mets "Erreur définie par l'application", avez-vous une petite idée ?

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ça fonctionne bien comme ça. L'erreur provient de la définition de ta plage de cellule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Plage As Range
        Set Plage = Range("C2:C" & Range("A2").End(xlDown).Row) 
        For Each Ligne In Plage
             Ligne.Formula = "=Maformule"
        Next
        Set Plage = Nothing
    Tel quel, ce code place la formule sur les cellule C2 à C & dernière ligne

    Edit
    Corrigé pour s'arrêter sur dernière ligne de la colonne A, mais dans colonne B

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 147
    Par défaut
    Ouinnnn, cela ne fonctionne pas...

    Voici le code que j'ai modifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim Espace As Range
    Dim Ligne as Variant
     
    Set Espace = Range("C2:C" & Columns("B").Range("A2").End(xlDown).Row)
     
    For Each Ligne In Espace
    Ligne.Formula = "=Maformule"
    Next
    Ca me fait toujours la même erreur...

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu as bien lu ma réponse ? Que vien faire ton Columns("b") dans mon code ?
    Explique tu dois avoir une raison.
    Set Espace = Range("D2" & Columns("B").Range("A2").End(xlDown).Row)

  5. #5
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Par défaut
    ou sinon au lieu de mettre Formula, essaye FormulaLocal pour voir

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 147
    Par défaut
    En fait c'est simple, j'ai 2 colonnes remplis (A, B) et je voudrais que la formule se mette dans la colonne "C".
    Pour trouver le numéro de la dernière ligne remplie de la colonne "B" je vais sur la première cellule remplie de la colonne "B" et je vais jusqu'en bas.
    La selection fais au final ("C2:C" & Dernière ligne remplie de la colonne "B")

    J'ai oublier quelque chose ?

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

Discussions similaires

  1. comment effacer un element dans un collection dans une boucle for each
    Par medkarim dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 17/10/2008, 13h48
  2. un For Each qui ne fonctionne pas avec une collection maison !
    Par grenouillesiverte dans le forum Windows Forms
    Réponses: 7
    Dernier message: 01/09/2007, 22h00
  3. [XSLT / XPATH] for-each-group: comment ça marche?
    Par be_tnt dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 24/11/2006, 10h40
  4. [XSL]Comment faire ceci ?? Mon for-each n'affiche pas tout !
    Par Devil666 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 27/07/2005, 16h04

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