Problème création Macro via VB Editor

Mezixx

XLDnaute Nouveau
Bonsoir à tous,


Je souhaite une macro pour insérer 26 lignes toute les lignes et cela en une seule fois...

j'ai donc trouvé la macro suivante :

Sub InsertRowsEveryTenthRow()
Dim X As Long, FirstBlankRow As Long, Increment As Long, U As Range
FirstBlankRow = 11
Increment = 10
For X = FirstBlankRow To ActiveSheet.UsedRange.Rows.Count Step Increment
If U Is Nothing Then
Set U = Rows(X)
Else
Set U = Union(U, Rows(X))
End If
Next
U.Insert
End Sub

1. J'ouvre le VB editor
2. Je sélectionne ma feuille en question
3. Je fais le "coller" de la macro
4. Je test et LA "Erreur de syntaxe" et la première ligne ("Sub InsertRowsEveryTenthRow()")est surlignée...

Je maitrise pas le VB Editor donc j'ai surement oublié un truc...merci de votre aide !
 

youky(BJ)

XLDnaute Barbatruc
Re : Problème création Macro via VB Editor

Je confirme. . . .
Tu maitrises encore peu VBA
Bonsoir,
En VBA editor va en menu >insertion>module
et là colle ta macro
ensuite tu pourras l'appeller par l'onglet développeur>macro

Bonne chance en VBA
Bruno
 

soenda

XLDnaute Accro
Re : Problème création Macro via VB Editor

Bonsoir le fil, Mezixx, youki(BJ)

Un exemple pour insérer "en une fois" 26 lignes vides après chaque ligne.
- C'est la dernière ligne de la colonne A, qui est prise en compte.
- Le nombre de colonne est fixé à 3, mais tu peux le modifier en affectant le nombre (pas trop grand) qui te convient, à la variable nbColonnes.
Code:
Sub b()
    Dim fin%, L%, C%, [B][COLOR=red]deb[/COLOR][COLOR=red]%[/COLOR][/B], LVide%, LInfo As Integer
    Dim nbLignes%, nbColonnes As Integer
    Dim t() As String
 
    [B][COLOR=red]deb = 3[/COLOR][/B]                              [B][COLOR=teal]' première ligne[/COLOR][/B]
    nbLignes = 26                       [B][COLOR=darkgreen]' Nombre de lignes à insérer[/COLOR][/B]
    nbColonnes = 3                     [COLOR=darkgreen][B]' Nombre de colonnes concernées[/B][/COLOR]
 
    fin = [A65536].End(xlUp).Row
    ReDim t(fin * (nbLignes + 1), nbColonnes - 1)
 
   [B][COLOR=darkgreen]' Remplit le tableau de String[/COLOR][/B]
    For L = 1 To fin
 
       [B][COLOR=darkgreen]' Copie les infos[/COLOR][/B]
        For C = 1 To nbColonnes
            t(LInfo, C - 1) = CStr(Cells(L, C))
        Next
 
        [B][COLOR=darkgreen]' Remplit de chaînes vides, les lignes vides du tableau[/COLOR][/B]
        For LVide = LInfo + 1 To LInfo + nbLignes
            For C = 0 To nbColonnes - 1
                t(LVide, C) = ""
            Next
        Next
 
        LInfo = LVide
    Next
 
    [COLOR=darkgreen][B]' Copie le tableau à partir de la 1ère ligne du tableau et ce, sur nbColonnes (= 3)[/B][/COLOR]
    [A1].[B][COLOR=red]Offset(deb - 1).[/COLOR][/B]Resize(UBound(t) - nbLignes, nbColonnes) = t
 
End Sub
A plus
 
Dernière édition:

Mezixx

XLDnaute Nouveau
Re : Problème création Macro via VB Editor

Merci à vous deux pour votre aide !

* Youky merci pour la manip...c'était vraiment simple :eek:
Je ne sais pas pourquoi je m'acharnais à faire différemment (en cliquant sur le feuille concernée par la macro...)

* soenda ta formule ne marche pas pour mon cas...


Par contre celle que j'ai trouvé de mon côté fonctionne presque !
En fait elle m'ajoute 1 ligne toute les 10 lignes....alors que moi je souhaite 26 lignes vides toutes les lignes.

ex :

A A
B 1
C 2
D ...
E 26
F B
G 1
H 2
... ...



Une idée ?
 

Staple1600

XLDnaute Barbatruc
Re : Problème création Macro via VB Editor

Bonsoir

alors que moi je souhaite 26 lignes vides toutes les lignes.
Si j'ai compris ta question alors la macro ci-dessous
fait ce que tu veux

Code:
Sub insere26lignes()
Dim dl&, i&
Application.ScreenUpdating = False
With ActiveSheet
    dl = .[A65536].End(xlUp).Row
        For i = dl To 2 Step -1
            .Cells(i, "A").Resize(26).EntireRow.Insert
        Next i
End With
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Problème création Macro via VB Editor

Re

Chez moi cela marche (je teste avant de poster :rolleyes: )

Saisis AA1 en cellule A1
puis recopie vers le bas jusqu'en A3
tu as AA1, AA2, AA3
ensuite exécutes la macro de mon précédent message

Il y a bien 26 lignes vides insérées en AA1 et AA2 puis 26 lignes vides entre AA2 et AA3 non ?
 

Staple1600

XLDnaute Barbatruc
Re : Problème création Macro via VB Editor

Re



J' ai adapté en fonction de ton fichier exemple

et cette fois encore, j'affirme que cela fonctionne

Code:
Sub insere26lignes()
Dim dl&, i&
Application.ScreenUpdating = False
With ActiveSheet
    dl = .[A65536].End(xlUp).Row
        For i = dl To [COLOR=Red][B]4[/B][/COLOR] Step -1
            .Cells(i, "A").Resize(26).EntireRow.Insert
        Next i
End With
End Sub
 

Mezixx

XLDnaute Nouveau
Re : Problème création Macro via VB Editor

Merci !

En fait mes lignes sont remplies et il y a de moins en moins de colonnes utilisées...et donc la macro s'arrête a un moment...

ex:

ABCDEFGHIJKLMNOP
BCDEFGHIJKLMNOP
CDEFGHIJKLMNOP....


mais sinon sur un même nombre de colonnes en effet cela marche parfaitement !!!


Merci beaucoup à tous pour votre aide !
 

Discussions similaires

Statistiques des forums

Discussions
312 231
Messages
2 086 457
Membres
103 219
dernier inscrit
Akyrah