Copier/Coller un ensemble de cellule automatiquement

Fermé
tutur09 Messages postés 25 Date d'inscription vendredi 26 février 2016 Statut Membre Dernière intervention 15 octobre 2020 - 7 mars 2016 à 15:46
tutur09 Messages postés 25 Date d'inscription vendredi 26 février 2016 Statut Membre Dernière intervention 15 octobre 2020 - 21 mars 2016 à 22:36
Bonjour,

Je cherche à copier/coller automatiquement un ensemble de cellules en fonction d'un critère.

Par exemple, si en A1 j'ai 2 (ou 4), alors il faudra copier/coller l'ensemble des cellules (A2 à E22) 2 (ou 4) fois à la suite. Je ne sais pas si ma question est très claire..

Est-ce possible de réaliser cette action sans Macro ou bien n'y a t-il aucun autre moyen ?

Merci d'avance,

Cordialement,
A voir également:

2 réponses

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
7 mars 2016 à 15:57
Bonjour,

Tout dépend de ce que tu entends par "2 fois à la suite".
Est-ce que le résultat est A2:J22 ou A2:E43 ?

A+
0
tutur09 Messages postés 25 Date d'inscription vendredi 26 février 2016 Statut Membre Dernière intervention 15 octobre 2020
7 mars 2016 à 22:10
J'ai un diagramme de GANTT dans les cellules A2:E22, j'aimerais en fonction d'une valeur que je vais rentrer dans la cellule A1 (par exemple 2 ou 4), créer 1 (ou 3) nouveau diagramme de GANTT identique des cellules A24:E44 (ainsi que A46:E66 et A68:E88 dans l'autre cas).
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523 > tutur09 Messages postés 25 Date d'inscription vendredi 26 février 2016 Statut Membre Dernière intervention 15 octobre 2020
8 mars 2016 à 08:51
Voici un code à placer dans le module de la feuille concernée.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$A$1" And Target.Value <> "" Then
Cancel = True
For i = 1 To Target.Value
Range("A2:E22").Copy Range("A2").Offset(i * 22)
Next i
End If
End Sub

La procédure se lance lors d'un double clic sur la cellule A1.

A+
0
tutur09 Messages postés 25 Date d'inscription vendredi 26 février 2016 Statut Membre Dernière intervention 15 octobre 2020
14 mars 2016 à 13:50
Bonjour,

Merci pour votre réponse,

J'ai quelques difficultés à placer le code dans le module de la feuille. On me demande de créer une Macro lorsque je veux exécuter ce code. Mes connaissances en VBA sont très réduites. Comment dois-je faire pour lacer cette procédure ?

Merci
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523 > tutur09 Messages postés 25 Date d'inscription vendredi 26 février 2016 Statut Membre Dernière intervention 15 octobre 2020
14 mars 2016 à 14:04
Le code étant placé dans le module de la feuille (pour le contrôler, clic droit sur l'onglet > Visualiser le code), la procédure sera automatiquement lancée lorsque tu feras un double clic sur la cellule A1.

A+
0
tutur09 Messages postés 25 Date d'inscription vendredi 26 février 2016 Statut Membre Dernière intervention 15 octobre 2020
17 mars 2016 à 08:02
Merci beaucoup pour votre aide, j'ai réussi à lancer la procédure !

Une dernière question, imaginons que je veuille lancer cette même procédure mais en utilisant un bouton à côté de la case et non pas un double click sur la case. Auriez-vous une idée ?

Merci d'avance,
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
17 mars 2016 à 08:13
Bonjour,

Avec un bouton de commande ActiveX :
Private Sub CommandButton1_Click()
If Range("A1").Value <> "" Then
For i = 1 To Range("A1").Value
Range("A2:E22").Copy Range("A2").Offset(i * 22)
Next i
End If
End Sub

A+
0
tutur09 Messages postés 25 Date d'inscription vendredi 26 février 2016 Statut Membre Dernière intervention 15 octobre 2020
21 mars 2016 à 22:36
Bonsoir,

Merci pour votre réponse !

J'ai en effet utilisé votre code et cela fonctionne bien. J'ai de plus réalisé un autre code afin d'ajouter à l'aide d'un autre bouton une nouvelle copie :

Private Sub CommandButton2_Click()
If Range("B1").Value <> "" Then
For j = 1 To Range("A2").Value
Rang("A2:E22").Copy Range("A2").Offset(Range("A1").Value*20).Offset(j*22)
Next j
End If
End Sub

J'aimerais pouvoir ajouter une copie à la suite des copies déjà effectuées à chaque fois que je clique sur mon second bouton. En utilisant un NbClick par exemple afin d'incrémenter un compteur à chaque ajout de copie pour que les nouvelles copies viennent toujours à la suite. Cela est-il possible ? Je ne sais pas si j'ai été très clair...

Merci d'avance,

Cordialement,
0