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 :

Macro pour copier autant de fois une cellule que le nombre indiqué dans une autre cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Septembre 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1
    Par défaut Macro pour copier autant de fois une cellule que le nombre indiqué dans une autre cellule
    Bonjour à tous,

    Je suis grande débutante sur excel
    Je ne l'utilise que pour faire des calculs simples.

    Pour ce que je veux faire maintenant, je pense avoir besoin d'une macro, chose tout à fait nouveau pour moi...

    Dans la feuille 1, j'ai 2 colonnes:
    - colonne A: nom d'un produit (voiture)
    - colonne B: nombre de déclinaisons du produit (par exemple 5 pour 5 couleurs différentes)

    Dans la feuille 2, je souhaiterai que dans la colonne A, le nom des produits soit répétés autant de fois qu'il a de couleurs

    En gros, si dans la feuille 1, j'ai "voiture" dans la colonne A et "5" dans la colonne B, alors j'aimerai avoir sur la feuille 2 le mot "voiture" répété 5 fois dans 5 lignes différentes:
    voiture
    voiture
    voiture
    voiture
    voiture

    Il faudrait que la marco puisse répéter le résultat pour toutes les lignes de la feuille 1.

    Comment dire, j'ai essayé pas mal de codes, mais sans jamais obtenir le résultat souhaité

    Est-ce que quelqu'un pourrait m'aider ?

    Merci.

    Julia

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    un exemple semi-optimisé (afin que le code ne soit pas trop complexe pour toi)

    copie l'ensemble des données de la colonne A et B de Feuil1
    Ecrit la valeur de chaque cellule de la colonne A, le nombre de fois qu'il est inscrit dans la cellule de la colonne B ... dans la colonne A de Feuil2

    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
    19
    20
    21
    Sub ioi()
    Dim Tabl()
    Dim i As Long, j As Long
     
    ' on prend la colonne A et B de Feuil1
    With Worksheets("Feuil1")
        Tabl = .Range(.Cells(1, 1), .Cells(.Rows.Count, 2).End(xlUp)).Value
    End With
     
    ' pour chaque valeur de la colonne A
    For i = LBound(Tabl, 1) To UBound(Tabl, 1)
        ' pour un nombre de fois égale au nombre qui est en colonne B
        For j = 1 To Tabl(i, 2)
            With Worksheets("Feuil2")
                ' on écrit la valeur dans la Feuil2, en colonne A
                .Cells(.Rows.Count, 1).End(xlUp)(2).Value = Tabl(i, 1)
            End With
        Next j
    Next i
     
    End Sub

Discussions similaires

  1. [XL-2000] Ajout d'une plage de cellule verticalement selon nombre figurant dans une cellule
    Par brumarj dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 04/06/2010, 18h30
  2. Réponses: 4
    Dernier message: 04/07/2008, 11h34
  3. Réponses: 1
    Dernier message: 22/06/2008, 23h47
  4. Réponses: 5
    Dernier message: 09/06/2008, 09h57
  5. Réponses: 2
    Dernier message: 06/10/2007, 00h49

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