Inserer des lignes dans un tableau dont le nombres de lignes peut varier

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 !

Seb@stien

XLDnaute Nouveau
Bonjour !
Voici un problème sur lequel je vins de passer un moment :
J'ai créé un classeur, et sur chaque feuille, il y aura le même type de tableau mais le nombres de lignes pourra différer.
Néanmoins, je souhaiterai insérer un tableau sous celui déjà créer après avoir passé une ou deux lignes de façons à faire des bilans.
Évidement, j'aimerais bien qu'[/contents/1103-introduction-a-la-notion-de-tableur Excel] le fasse directement...
Si vous avez des idées, merci d'avance.
 

Pièces jointes

Re : Inserer des lignes dans un tableau dont le nombres de lignes peut varier

Bonjour Seb@stien, bienvenue sur XLD,

Le plus simple est de stocker la zone à ajouter à droite du tableau.

Par exemple la zone AQ3:BX32 (que j'ai colorée pour plus de visibilité).

Attention pour les formules : il faut mettre le signe $ (références absolues) quand c'est nécessaire.

Ensuite, avec la numérotation en colonne A, les macros sont très simples :

Code:
Sub AjouterBilan()
[AQ3:BX32].Copy Cells(Application.Max([A:A]) + 5, "A")
End Sub

Sub SupprimerBilan()
Range(Cells(Application.Max([A:A]) + 4, "A"), Cells(Rows.Count, "AN")).Delete xlUp
End Sub
Fichier joint.

A+
 

Pièces jointes

Dernière édition:
Re : Inserer des lignes dans un tableau dont le nombres de lignes peut varier

Re,

Fichier (2) pour peaufiner :

Code:
Sub SupprimerBilan()
Range(Cells(Application.Max([A:A]) + 4, "A"), Cells(Rows.Count, "AN")).Delete xlUp
With ActiveSheet.UsedRange: End With 'ajuste la ScrollBar verticale
End Sub
A+
 

Pièces jointes

Re : Inserer des lignes dans un tableau dont le nombres de lignes peut varier

Salut,
Peut-être que cette macro pourrai te servir :

Code:
Sub InsertRowsAndFillFormulas()
   Dim X As Long
   ActiveCell.EntireRow.Select
   If vRows = 0 Then
    vRows = Application.InputBox(prompt:= _
      "Combien de ligne veut tu afficher?", Title:="Add Rows", _
      Default:=1, Type:=1)
    If vRows = False Then Exit Sub
   End If
     
   Dim sht As Worksheet, shts() As String, I As Integer
   ReDim shts(1 To Worksheets.Application.ActiveWorkbook. _
       Windows(1).SelectedSheets.Count)
   I = 0
      
   For Each sht In _
       Application.ActiveWorkbook.Windows(1).SelectedSheets
    Sheets(sht.Name).Select
    I = I + 1
    shts(I) = sht.Name
 
    X = Sheets(sht.Name).UsedRange.Rows.Count
 
    Selection.Resize(rowsize:=2).Rows(2).EntireRow. _
     Resize(rowsize:=vRows).Insert Shift:=xlDown
 
    Selection.AutoFill Selection.Resize( _
     rowsize:=vRows + 1), xlFillDefault
       
    On Error Resume Next
     Selection.Offset(1).Resize(vRows).EntireRow. _
     SpecialCells(xlConstants).ClearContents
   Next sht
   Worksheets(shts).Select
    
End Sub
 
Re : Inserer des lignes dans un tableau dont le nombres de lignes peut varier

Tout d'abord, merci beaucoup ! Ca marche très bien dans ton exemple !

Par contre, j'ai essayer de l'appliquer pour moi et je ne comprends pas pourquoi mais j'ai un message d'erreur qd je veux le masquer. En effet, il peut arriver de devoir ajouter ou supprimer des lignes en cours de temps : donc, je dois pouvoir le masquer et le réinsérer par la suite...

Alors, si tu as une autre idée, c'est super sympa de m'aider !

(PS : en fait, je ne maîtrise pas du tout le langage de programmation des macros alors, c'est vrai que j'ai qqs difficultés...)

Merci d'avance. Bonne soirée
 

Pièces jointes

Re : Inserer des lignes dans un tableau dont le nombres de lignes peut varier

Bonjour Seb@stien, le forum,

Coller une plage à l'intérieur du tableau principal n'est guère recommandé...

Mais on peut s'en sortir en nommant la plage :

Code:
Sub AjouterNiveauCompétences()
Dim plage As Range
Set plage = [CA3:CE5]
With Cells(Application.Max([A:A]) + 5, "W")
 plage.Copy .Cells
 .Resize(plage.Rows.Count, plage.Columns.Count).Name = "Bilan"
End With
End Sub

Sub MasquerNiveauCompétences()
On Error Resume Next 'si "Bilan" n'existe pas
Intersect([A:AN], [Bilan].EntireRow).Delete xlUp
End Sub
Nota : pas recommandé non plus de mettre des boutons à l'intérieur du tableau 🙄

A+
 
Re : Inserer des lignes dans un tableau dont le nombres de lignes peut varier

SUPER !!!! 😉
Merci beaucoup !
Mais je vais encore abuser de toi si tu as encore conseils à me donner...
Voilà, mon tableau n'est malheureusement pas fini...
En fait, sous le 1er tableau j'ai également un autre tableau à insérer de la même façon que le précédent (c'est à dire environ 2 ligne en dessous) mais cette fois-ci, je dois mettre la somme de tous les nombres qui apparaissent dans la colonne du dessus!
Je sais faire les sommes sur une colonne fixe mais ici, vu que le nombre de lignes de mon tableau peut évoluer au cours du temps, je me retrouve avec un nouveau problème de macro que je n'arrive pas à formuler...
Pourrais-tu encore de dépanner ?

Merci d'avance !
 

Pièces jointes

Re : Inserer des lignes dans un tableau dont le nombres de lignes peut varier

Re,

Dans le tableau source, en CB16, entrez cette formule :

Code:
=SOMME(DECALER($D$3;;;LIGNE()-LIGNE($D$3)))
Les 4 signes $ sont indispensables.

Bien sûr adaptez la macro pour le transfert sous le tableau principal.

A+
 
Re : Inserer des lignes dans un tableau dont le nombres de lignes peut varier

Merci pour ta réponse rapide mais je viens d'essayer, et on dirait que ca ne compte que les 13 premières lignes de mon tableau...
 

Pièces jointes

Re : Inserer des lignes dans un tableau dont le nombres de lignes peut varier

Re,

Je vois que vous n'avez rien compris.

Et vous n'avez même pas adapté la macro :

Code:
Sub AjouterNiveauCompétences()
'
' AjouterNiveauCompétences Macro
'
Dim plage As Range
Set plage = [CA3:CE16]
With Cells(Application.Max([A:A]) + 5, "W")
  plage.Copy .Cells
  .Resize(plage.Rows.Count, plage.Columns.Count).Name = "Bilan"
End With
'
End Sub
Lancez-la, vous constaterez que la somme est correcte (18).

D'ailleurs s'il n'y a pas de nombres en-dessous on peut tout simplement entrer en CB16 :

Code:
=SOMME($D:$D)
A+
 
Re : Inserer des lignes dans un tableau dont le nombres de lignes peut varier

Bonsoir le Forum, pas le temps de chercher mais pour Seb@stien, tu peux raccourcir ton code (à la fin) par ceci:

Range("E3:E52, G3:G52, I3:I52, K3:K52, M3:M52, O3:O52").ClearContents
 
Re : Inserer des lignes dans un tableau dont le nombres de lignes peut varier

Bonjour !
Alors tout d'abord, pardon car je pensais vous avoir répondu suite à votre message mais visiblement, il a du y avoir un problème de connexion...
En fait, je tenais déjà à m’excuser de mon incompétence mais aussi du fait que je m'étais sans doute mal expliqué et que j'avais mal compris également ! J'avais juste testé au début votre formule voir si ca marché avant d'essayer d'adapter la macro...
Effectivement, j'ai ré-essayé et je modifié pour arriver à qqch que je voulais...
Je ne veux plus abuser de vos services (car c'est déjà super sympa à vous de m'avoir aidé !) mais y a t-il un moyen simple pour que la mise en forme conditionnelle de mes tableau se reproduise uniquement sur les lignes où il y a un numéro devant et en finissant ces tableau par une bordure plus épaisse en dernière ligne ?
(En fait, je me suis aperçu que toutes mes mises en forme conditionnelle avait été modifiée et j'ai beau essayer des modifs pour que ça s'ajuste si mon nombre de lignes varie mais je n'ai pas trouvé...)

Merci d'avance !
 

Pièces jointes

Re : Inserer des lignes dans un tableau dont le nombres de lignes peut varier

Bonjour Seb@stien,

Cela n'a rien à voir avec le sujet de ce fil, ne le polluez pas et ouvrez éventuellement une nouvelle discussion.

Cela dit il suffit d'ajouter les tests adéquats dans les formules des MFC de vos 3 tableaux.

Et sachez que les MFC ne peuvent pas afficher de "grosses" bordures.

A+
 
- 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