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 de sélection [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 40
    Par défaut Boucle de sélection
    Bonjour à tous !

    Je souhaiterai réaliser une macro qui sélectionne en boucle 12 lignes en colonne C et 12 lignes en colonne E soit :
    Range 1 ("C2:C13") et range 2 ("E2:E13") pour qu'elle copie et colle ailleurs pour passer automatiquement en ("C14:C25"), ("E14:E25") et ainsi de suite tant que les colonnes C et E ne sont pas vides.

    J'ai donc pensé à faire 3 variables R1, R2 As range et S As Integer avec S =12 comme ca il suffit d'incrémenter les 2 ranges. Mais je ne sais pas trop comment faire ceci . Je suis un peu perdu avec les variables :s

  2. #2
    Membre éclairé
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Par défaut
    bonjour,
    ce que je fais pour copier une zone

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'définir une zone
    set zone = range(cells(debut_ligne,debut_colonne),cells(fin_ligne,fin_colonne))
     
    'copier coller
    zone.copy
     
    cells(ligne_cible,colonne_cible).PasteSpecial
    l'aide te donne les options de pastespecial

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Pour la colonne C, fais la m^me chose pour la colonne E :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test3()
        Dim i As Integer
        Do Until c.Value = ""
            [C2:C13].Offset(i).Copy
            'colle où tu veux
            i = i + 12
        Loop
    End Sub

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 40
    Par défaut
    Super merci à vous 2 ! Je vais essayer avec ce que vous m'avez donné. Je vous tiens au courant !

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Au temps pour moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test3()
        Dim i As Integer
        Do Until [C2].Offset(i).Value = ""
            [C2:C13].Offset(i).Copy
            'colle où tu veux
            i = i + 12
        Loop
    End Sub

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 40
    Par défaut
    Ton code fonctionne parfaitement Daniel.c. Le soucis c'est que j'aimerai combiner les 2 colonnes.

    Il me prends les 12 premiers de la colonne C, il me les colle. Copie les 12 premiers de la colonne E, il les colle, et ensuite ca passe au 12 suivants.

    Mais j'ai un peu du mal à faire correspondre les 2 codes.

    EDIT : En fait c'est bon j'ai trouvé, je cherchais midi a 14 heures :
    Il suffisait de faire un AND :

    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
    Sub Creation_Nomenclature()
     
    Dim S As Integer 'S pour Selection
     
        Do Until [C2].Offset(S).Value = "" And [E2].Offset(S).Value = ""
            [C2:C13].Offset(S).Copy
            SendKeys "^v", True 'Coller les 12 codes JDE
            [E2:E13].Offset(S).Copy
            SendKeys "^v", True 'Coller les 12 codes JDE
     
            S = S + 12
        Loop
     
     
    MsgBox "Création des articles terminée."
    End Sub

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

Discussions similaires

  1. [AC-2010] Boucles de sélection, modification et ajout en VBA
    Par sgauduin dans le forum VBA Access
    Réponses: 5
    Dernier message: 19/07/2012, 07h42
  2. [XL-2003] Créer une macro avec boucle sur sélection
    Par ostik dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/03/2011, 16h47
  3. [Toutes versions] Boucle pour sélection de feuille hierarchisé alphabétiquement
    Par mentat dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 26/04/2010, 21h18
  4. programmation matlab (boucles et sélection)
    Par maraval dans le forum MATLAB
    Réponses: 13
    Dernier message: 21/02/2010, 22h27
  5. Réponses: 2
    Dernier message: 05/06/2006, 16h53

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