TrèsBonEteATous
XLDnaute Nouveau
Bonjour à tous !
Par avance merci de votre compréhension, de votre aide et de vos bons conseils. Je débute sur excel , j'ai attentivement cherché des solutions, mais je pense que je ne vais pas pouvoir y arriver sans votre aide.
Je travaille sur des sujets SEO où le but du jeu est de savoir quels sont le mots clés de sites web OU comment sont positionnés des sites sur des mots clés.
Bref l'idée est de pouvoir insérer un nombre de lignes VIDES défini par l'utilisateur (100, 1000 5000, ...) dans un user form.
Il y a aussi une autre difficulté : comment activer/ désactiver simplement le calcul automatique pour ne le lancer que quand les lignes auront été créées ?
J'ai trouvé cette macro (sans doute sur le site) pour insérer 100 lignes. Je vous remercie sincèrement de votre aide
Option Explicit
Sub InsertionLignes()
Dim nbCol As Integer, i As Integer, n As Integer
Dim nbLigne As Long, rpre() As Long
Dim plage As Range, cel As Range, zone As String
Application.ScreenUpdating = False
Sheets.Add after:=Worksheets("Données")
ActiveSheet.Name = "Clone"
Set plage = Worksheets("Données").Range("A1").CurrentRegion
plage.Copy Destination:=Worksheets("Clone").Range("A1")
Set plage = Worksheets("Clone").Range("A1").CurrentRegion
nbCol = plage.End(xlToRight).Column
nbLigne = plage.End(xlDown).Row
For Each cel In plage.Columns(2).Cells
If IsEmpty(cel) Then
n = n + 1
ReDim Preserve rpre(n)
rpre(n) = cel.Row
End If
Next
For i = n - 1 To 1 Step -1
zone = CStr(rpre(i + 1)) & ":" & CStr(99 + rpre(i))
plage.Rows(zone).Insert Shift:=xlDown
Next i
' réintégration sur la feuille "Données"
nbLigne = n * 100
plage.Resize(nbLigne).Copy Destination:=Worksheets("Données").Range("A1")
'suppression de la feuille intermédiaire
Application.DisplayAlerts = False
Worksheets("Clone").Delete
Worksheets("Données").Activate
Application.ScreenUpdating = True '*************
End Sub
Par avance merci de votre compréhension, de votre aide et de vos bons conseils. Je débute sur excel , j'ai attentivement cherché des solutions, mais je pense que je ne vais pas pouvoir y arriver sans votre aide.
Je travaille sur des sujets SEO où le but du jeu est de savoir quels sont le mots clés de sites web OU comment sont positionnés des sites sur des mots clés.
Bref l'idée est de pouvoir insérer un nombre de lignes VIDES défini par l'utilisateur (100, 1000 5000, ...) dans un user form.
Il y a aussi une autre difficulté : comment activer/ désactiver simplement le calcul automatique pour ne le lancer que quand les lignes auront été créées ?
J'ai trouvé cette macro (sans doute sur le site) pour insérer 100 lignes. Je vous remercie sincèrement de votre aide
Option Explicit
Sub InsertionLignes()
Dim nbCol As Integer, i As Integer, n As Integer
Dim nbLigne As Long, rpre() As Long
Dim plage As Range, cel As Range, zone As String
Application.ScreenUpdating = False
Sheets.Add after:=Worksheets("Données")
ActiveSheet.Name = "Clone"
Set plage = Worksheets("Données").Range("A1").CurrentRegion
plage.Copy Destination:=Worksheets("Clone").Range("A1")
Set plage = Worksheets("Clone").Range("A1").CurrentRegion
nbCol = plage.End(xlToRight).Column
nbLigne = plage.End(xlDown).Row
For Each cel In plage.Columns(2).Cells
If IsEmpty(cel) Then
n = n + 1
ReDim Preserve rpre(n)
rpre(n) = cel.Row
End If
Next
For i = n - 1 To 1 Step -1
zone = CStr(rpre(i + 1)) & ":" & CStr(99 + rpre(i))
plage.Rows(zone).Insert Shift:=xlDown
Next i
' réintégration sur la feuille "Données"
nbLigne = n * 100
plage.Resize(nbLigne).Copy Destination:=Worksheets("Données").Range("A1")
'suppression de la feuille intermédiaire
Application.DisplayAlerts = False
Worksheets("Clone").Delete
Worksheets("Données").Activate
Application.ScreenUpdating = True '*************
End Sub