XL 2016 Macro pour copier et coller des ligne

ROL

XLDnaute Nouveau
Bonjour

comme je bisouille en VBA et galère beaucoup est-ce que vous pourriez m'aider.

j'aimerais que le code copie et colle la ligne 6 de la feuille1 le nombre de fois qui est indiqué dans la case C3 de la feuille intro.

If Worksheets("intro").Range("C3").Value Like "*3*" Then
Rows("6:6").Select
Selection.Copy
Rows("7").Select
Selection.Insert Shift:=xlDown

Merci beaucoup pour votre aide
 

Staple1600

XLDnaute Barbatruc
Re

Et celle-ci au cas où C3 serait vide ou égale à zéro.
VB:
Sub Recopie_II()
Dim NB_Fois&, p As Range: Set p = Sheets("Feuil1").Rows(6)
NB_Fois = Worksheets("intro").Range("C3"): p.Copy p.Offset(1).Resize(IIf(NB_Fois = 0, 1, NB_Fois))
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

Pas sur que comprendre où tu veux en venir
Ci-dessous: ne fonctionne qu'une fois
VB:
Sub Recopie_IV()
Dim NB_Fois&, p As Range: Set p = Sheets("Feuil1").Rows(6)
NB_Fois = Worksheets("intro").Range("C3"): p.Copy p.Offset(1).Resize(IIf(NB_Fois = 0, 1, NB_Fois))
Application.DisplayAlerts = False
p.Cells(1).Offset(1).Resize(NB_Fois).Merge
End Sub
Tu peux poster un fichier Excel exemple, stp ?
Avec deux onglets: AVANT et APRES
 

ROL

XLDnaute Nouveau
bonjour là je suis bloqué,
j'aimerais quand la cellule C3 il y a le chiffre 3 et a créé la feuille il faudrait 3 lignes à partir de la ligne A5.
Si la cellule C20 est oui vu code "if tooling" une ligne doit être ajoutée juste que là ça fonctionne plus ou oin bien.
Les cellules dans la colonne A des lignes créées doivent être fusionnées
et enfin
Si la cellule C4 contient un chiffre la commande ci-dessus est répétée dans ce cas 5 fois.

pour introduire les formules par la suite j'arrive à gérer.

Merci pour l'aide
 

Pièces jointes

  • 2020.xlsm
    42.5 KB · Affichages: 8

Staple1600

XLDnaute Barbatruc
Bonjour le fil, ROL

Alors puisqu'il faut s'occuper pendant qu'on confine ;)
Je me suis permis d'alléger ta macro mise en page
(seulement en partie)
VB:
Sub miseenpage()
'Déclarations des variables
Dim r As Range, i&, j&
Sheets.Add After:=Sheets(ThisWorkbook.Sheets.Count)
ActiveSheet.Name = "Sheet1"
Application.ScreenUpdating = False ' On fige le rafraichissement de l'écran
 'On renseigne des cellules (sans Select ou Activate)
[A1] = 0: [A3] = 0: [A4] = 0
'On régle la hauteur des lignes 2 à 4
Rows("2:4").RowHeight = 95
'On boucle sur les colonnes des cellules devant être fusionnées
For i = 1 To 52: For j = 2 To 4
Select Case i
'on ne prend que les numéros de colonnes qui commence les cellules fusionnées par 2
Case 2, 4, 12, 19, 22, 24, 26, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51
Cells(j, i).Resize(, 2).Merge ' on les fusionne
'on ne prend que les numéros de colonnes qui commence les cellules fusionnées par 3
Case 6, 9
Cells(j, i).Resize(, 3).Merge '' on les fusionne
Case Else
End Select
Next j: Next i
 'On renseigne  des cellules (sans Select ou Activate)
[N3:R3] = Array("ID Ø", "OD Ø", "T", "W", "MTC"): [U3] = "Euro": [N4:Q4] = "mm": [AB3] = "F"
'"border"
Set r = [A2:AZ4] ' on définit la plage de celllule A2:AZ4
'On applique les bordures sur la plage r (sans Select ou Activate)
r.BorderAround , -4138, -4105: r.Borders(7).Weight = -4138: r.Borders(8).Weight = -4138: r.Borders(9).Weight = -4138: r.Borders(10).Weight = -4138
r.Borders(11).Weight = xlThin: r.Borders(12).LineStyle = xlDash: r.Borders(12).Weight = xlThin
'Les chiffres -4138, -4105 tc... sont les valeurs "numériques des constantes
'Ex:xlMedium = -4138, xlEdgeBottom=9
'Voir dans l'aide De VBE ou sur le net pour avoir les équivalences
'"formula cells"
' reste du code à modifier ou pas ? ;-)
End Sub
Peux-tu, stp, tester chez toi et me redire si le résultat est identique à ce que fait ta macro non modifiée?
(NB: Uniquement jusqu'à l'application des bordures)
 
Dernière édition:

ROL

XLDnaute Nouveau
la macro fonctionne bien et les cases correspondent
Juste la largeur des cases est peut-être trop grande.
J'ai un peu de mal à comprendre la macro si dans un future je dois la modifier par exemple en ajoutant ou enlever des colonnes
 

Discussions similaires

Statistiques des forums

Discussions
312 160
Messages
2 085 837
Membres
102 999
dernier inscrit
francoisarg56