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 :

selection d'une plage dans une boucle


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Points : 367
    Points
    367
    Par défaut selection d'une plage dans une boucle
    bonjour a tous

    voila le probleme
    dans une boucle du type "for next"
    je veux pouvoir selectioner la plage de célule de la ligne "k à q"
    hors je bloque sur la ligne de commande qui me permet de selectionner cette plage pendant la boucle sur cette ligne

    merci pour votre aide

  2. #2
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Si toi pas montrer ton code.... toi pas recevoir réponse.....

  3. #3
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    Je dirais même plus !
    D'autant que j'ai du mal avec
    de la ligne "k à q"
    C'est une nouvelle version d'Excel ?
    Bref, ton code sera le bienvenu

  4. #4
    Membre averti Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Points : 367
    Points
    367
    Par défaut
    ok
    excusez moi
    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
     
    numdl = Range("b65536").End(xlUp).Row 'recuper le numero de la dernière ligne du tableau
        For i = 2 To numdl ' pour donner la ligne pour demarer la fonction
        Range("k" & i).Select ' pour activer la formule sur la ligne les une après les autres 
        ActiveCell.FormulaR1C1 = "=IF(RC[-9]="""",R[-1]C[-9],"""")"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = "=IF(RC[-9]="""",R[-1]C[-9],"""")"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = "=IF(RC[-9]="""",R[-1]C[-9],"""")"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = "=IF(RC[-9]="""",R[-1]C[-9],"""")"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = "=IF(RC[-9]="""",R[-1]C[-9],"""")"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = "=IF(RC[-9]="""",R[-1]C[-9],"""")"
        ActiveCell.Offset(0, 1).Select
        ActiveCell.FormulaR1C1 = "=IF(RC[-9]="""",R[-1]C[-9],"""")"
    next i

    Donc cette suite d'operation se fait sur une ligne avec les colone k,l,m,n,o,p,q.
    Et ensuite je veux pouvoir selectionner ces éléments pour les copier-collers comme valeur sur la meme ligne mais a partir de la cellule en colone b

  5. #5
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    Si j'ai bien compris, ce code remplace le tien (!?!)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test()
    Dim Plage As Range, Numdl As Long
        Numdl = Range("b65536").End(xlUp).Row 'recuper le numero de la dernière ligne du tableau
        Range("k2").FormulaR1C1 = "=IF(RC[-9]="""",R[-1]C[-9],"""")"
        Set Plage = Range("k2:q" & Numdl)
        Range("k2").Copy Plage
        Set Plage = Range("k2:q" & Numdl)
        Plage.Copy
        Range("A2").PasteSpecial xlPasteValues
        Set Plage = Nothing
    End sub
    Tu dis

  6. #6
    Membre averti Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Points : 367
    Points
    367
    Par défaut
    non,
    je dois mal m'exprimer
    en fait le code que j'ai mis fait :
    1) il se place en cellule K de la ligne
    2) il va vérifier si la cellule B de la meme ligne est vide
    3) si elle est vide, il copie la cellule qui se trouve au dessus de B (soit B-1 ligne) dans la cellule K
    4) etc.. pour L, M, N, O, P, Q par rapport à C,D,E,F,G,H

    et donc ce que je veux faire, c'est que les information qui ont été mis sur K,L, M, N, O, P, Q soit reporté en C,D,E,F,G,H de la meme ligne

    le fait que cette commande se fasse dans une boucle 'next fort' m'empeche d'utiliser une ligne de commande comme range ("l2:q2") puisque très rapidement il me faudra l'information sur une autre ligne puisque je suis dans une boucle

  7. #7
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    Teste mon code !
    Une explication ?
    Mon code copie la formule que tu mets dans K2 sur les cellule suivantes en concervant le décalage de 9 colonnes (B pour k puis C pour L puis D pour M, etc.) ces formules étant recopiées de la ligne 2 à la dernière ligne renseignée de ta feuille de calculs.
    Oui, mon code fait tout ça.
    Enfin, les seules valeurs (sans les formules) de K2 à Q & DernièreLigne sont recopiées depuis B2 à H & DernièreLigne.
    Mais avant de dire non, teste

  8. #8
    Membre averti Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Points : 367
    Points
    367
    Par défaut
    excélent ton code
    en fait il prend l'ensemble de i to numdl pour le copier sur l'autre partie du tableau

    merci merci

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/07/2014, 17h57
  2. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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