Comment recopier une cellule un nombre de fois donné

Résolu/Fermé
albelo - 16 mars 2016 à 12:00
cvasse Messages postés 19 Date d'inscription vendredi 11 mars 2016 Statut Membre Dernière intervention 16 mars 2016 - 16 mars 2016 à 16:59
Bonjour,

dans un premier onglet j'ai une référence en colonne A, une couleur en colonne B et une quantité en colonne C.

Je cherche à copier les cellules référence et couleur dans un deuxième onglet de la quantité déterminée. Exemple si prod A123 bleu en quantité 55, alors dans le deuxième onglet il y aura 55 lignes avec A123 et bleu de recopier.

Auriez vous une solution ?

Merci de votre aide

1 réponse

cvasse Messages postés 19 Date d'inscription vendredi 11 mars 2016 Statut Membre Dernière intervention 16 mars 2016
16 mars 2016 à 13:01
Bonjour,

je ne suis pas certain d'avoir tout compris mais avec

For i = 1 to range("An").value
sheets("Feuil2").range(....) = ...
Next

je pense que cela devrait fonctionner.
0
merci pour votre aide, à quel endroit je doit insérer votre formule?
0
cvasse Messages postés 19 Date d'inscription vendredi 11 mars 2016 Statut Membre Dernière intervention 16 mars 2016 > albelo
16 mars 2016 à 13:57
Le plus simple serait de faire une macro que tu appelles avec un bouton.
0
oula je suis débutant pour être honnête, je ne sais pas comment m'y prendre
0
cvasse Messages postés 19 Date d'inscription vendredi 11 mars 2016 Statut Membre Dernière intervention 16 mars 2016 > albelo
16 mars 2016 à 14:38
Pour créer la macro, tu appuies sur les touches ALT et F11

Tu clique sur Insertion puis sur Module.

Un écran s'affiche sur lequel tu peux saisir ta macro.

Tu recopie ce code :

Sub macro()
'Récupération de la ligne à traiter
ligne = Range("H1").Value

'Récupération de la ligne de départ où insérer la copie
If Sheets("feuil2").Range("A1") = "" Then
j = 1
Else
j = Sheets("feuil2").Range("A1").End(xlDown).Row + 1
End If

'Boucle de recopie
For i = 1 To Cells(ligne, 3)
Sheets("feuil2").Cells(j, 1).Value = Sheets("feuil1").Cells(ligne, 1)
Sheets("feuil2").Cells(j, 2).Value = Sheets("feuil1").Cells(ligne, 2)
j = j + 1
Next
End Sub

ATTENTION, je pars du principe que tu copie toutes tes lignes dans le même onglet (qui s'appelle ici feuil2) les unes à la suite des autres.
Dans l'onglet où tu as tes lignes à copier, j'ai mis en cellule H1 la ligne que je souhaite prendre en compte. Si tu saisi 3 dans cette cellule, c'est la référence et la couleur de la ligne 3 qui seront copiés.

Une fois le code saisi, tu quitte l'écran en cliquant sur la croix rouge.

Tu peux alors créer ton bouton.

Pour celà, tu vas dans l'option développeur. Si tu ne l'as pas, tu peux la rajouter en allant dans le menu FIchier puis option puis personnaliser le ruban. Tu peux alors cocher Développeur dans la liste à droite.

Dans l'option développeur, tu clique alors sur insérer puis sur le rectangle dans contrôle de formulaire.

Tu places alors le bouton dans ta feuille excel. Tu fais ensuite un clic droit sur le bouton. Dans la liste qui s'affiche tu choisis Affecter une macro. Il ne te reste plus qu'à choisir la macro.

Bon courage.

Christian
0
Merci beaucoup Christian pour votre aide. J'ai suivi la procédure que vous m'avez indiqué. Par contre au moment d'affecter la macro j'ai un message d'erreur; Quand je clique sur débogage, la partie suivante du code et en jaune :
If Sheets("feuil2").Range("A1") = "" Then

Savez-vous comment résoudre ce problème ?
0