Insérer des cellules autant de fois que le nombre saisi dans une autre cellule

  • Initiateur de la discussion Initiateur de la discussion ADS
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ADS

XLDnaute Nouveau
Bonjour à tous,

Nouveau sur ce forum et débutant en excel, totalement novice en macro, je souhaiterais vous soumettre mon problème.
En fonction du nombre indiqué en cellule B3 dans mon fichier joint (calcul de fiscalité), je souhaiterais dupliquer autant de fois que le nombre indiqué la plage A7:B32, en format, valeurs et formules... et ce, côte à côte (C7😀32 si B3=2; C7😀32 et E7:F32 si B3=3, etc...).

Merci par avance pour votre aide !

ADS
 

Pièces jointes

Re : Insérer des cellules autant de fois que le nombre saisi dans une autre cellule

Bonsoir à tous,
Bonsoir ADS,

Un début de réponse :
VB:
Sub Copie()
Dim r As Range, i As Long
    Application.ScreenUpdating = False
    Set r = Range("A7:B32")
    On Error Resume Next
    r.Offset(, 2).Resize(, Columns.Count - 2).Delete
    On Error GoTo 0
    For i = 1 To Range("B3").Value
        r.Copy
        Set r = r.Offset(, r.Columns.Count)
        ActiveSheet.Paste r
    Next i
    Columns.AutoFit
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub
plutôt ceci :
VB:
Sub Copie1()
Dim r As Range, i As Long
    Application.ScreenUpdating = False
    Set r = Range("A7:B32")
    r.Offset(, 2).Resize(, Columns.Count - 2).Clear
    r.Copy
    For i = 1 To Range("B3").Value - 1
        Set r = r.Offset(, r.Columns.Count)
        ActiveSheet.Paste r
    Next i
    Columns.AutoFit
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub
klin89
 
Dernière édition:
Re : Insérer des cellules autant de fois que le nombre saisi dans une autre cellule

Bonjour Klin89,

Merci pour cette réponse.
Je suis en déplacement aujourd'hui et n'ai pas accès à mon ordinateur mais je regarde ça demain matin et vous tiens au courant.
Merci encore !
ADS
 
Re : Insérer des cellules autant de fois que le nombre saisi dans une autre cellule

Re ADS,

Via une InputBox
VB:
Sub Recopier()
Dim r As Range, n As Long
    Set r = Range("A7:B32")
    n = InputBox("Combien de copies voulez-vous ?", "Nombre de copies", 1)
    If n <= 1 Then Exit Sub
    r.Offset(, 2).Resize(, Columns.Count - 2).Clear
    r.Copy r.Resize(1, r.Columns.Count * n)
    Columns.AutoFit
End Sub
Correctif suite remarque du post #8
VB:
Sub Recopier()
Dim r As Range, n As Long
    Set r = Range("A7:B32")
    n = InputBox("Combien de copies voulez-vous ?", "Nombre de copies", 1)
    If n <= 0 Then Exit Sub
    r.Offset(, 2).Resize(, Columns.Count - 2).Clear
    r.Copy r.Resize(1, r.Columns.Count * n)
    Columns.AutoFit
End Sub
Klin89
 
Dernière édition:
Re : Insérer des cellules autant de fois que le nombre saisi dans une autre cellule

Merci Klin89,
la 2ème version de mardi et/ou celle d'hier me paraîssent plus correspondre à ce que j'attendais.
Toutefois, existe-t-il un moyen de faire en sorte que je ne sois pas obligé d'aller dans l'onglet macro et demander à ce que la macro s'exécute ?
Merci d'avance.
 
Re : Insérer des cellules autant de fois que le nombre saisi dans une autre cellule

J'ai essayé le code VBA fourni hier mais, en dehors de mon message d'aujourd'hui à 9h25, j'ai un autre souci.
Lorsque je rentre 2 copies, il crée bien 2 copies mais si je veux changer et revenir à 1, il garde la copie initiale...

Merci par avance pour votre aide.
 
Re : Insérer des cellules autant de fois que le nombre saisi dans une autre cellule

salut

avec une évènementielle (changement du nombre) ?
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal R As Range)
  Dim n As Byte
  If R.Address <> "$B$3" Then Exit Sub
  Application.ScreenUpdating = 0
  [C:IV].Delete
  If R = 1 Then Exit Sub
  For n = 1 To R - 1
    [A1:B2].Copy  'pour copie des largeurs de colonne
    Cells(7, n * 2 + 1).PasteSpecial Paste:=xlPasteColumnWidths
    [A7:B35].Copy Cells(7, n * 2 + 1) 'avec copie des formats
  Next
  R.Select
End Sub
 

Pièces jointes

Re : Insérer des cellules autant de fois que le nombre saisi dans une autre cellule

Super merci !
C'est exactement ce que je cherchais !!

Pour mon information SI..., je ne retrouve pas les commandes dans les macros : où puis-je les trouver ?
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour