Insertion d'une ligne dans une colonne en VBA

Bonjour à toutes et à tous.

Je travail sous VISTA en EXCEL 2003.

Quand j'insère une nouvelle ligne avec le bouton que j'ai créé,

les macros en bas de ligne ne s'incrémentent pas.

Voir fichier joint https://www.excel-pratique.com/~files/doc/hlnbVExemple.xls

Merci d'avance pour votre aide précieuse.

Bonsoir,

Mets ce code en lieu et place du tiens :

Private Sub CommandButton1_Click()
'Macro pour bg - XL Pratique le 18/03/08 - Dan
Dim Ligne As Integer
Ligne = Range("A65536").End(xlUp).Row
Range("A" & Ligne).EntireRow.Insert
Range("Ligne_Matrice").Copy Destination:=Range("A" & Ligne)
End Sub

Amicalement

Dan

Bonjour et merci a DAN qui a du prendre du temps

pour analyser mon code tordu.

Je suis désolé mais le numéro de la colonne ne

s'incrémente toujours pas en bas de mon tableau.

Il reste figé à 34.

https://www.excel-pratique.com/~files/doc/BHA4vExemple.xls

Amicalement bg

Bonjour,

rectificatif:

évidemment c'est le numéro de la ligne et non celui de la colonne dont je voulais parler

Encore merci bg

Re,

Non cela fonctionne bien ou alors je n'ai pas compris ton pb..

edit :

Tu n'en parles pas dans ton fil mais si le total doit être adapté (cellule J35), mets ce code :

Private Sub CommandButton1_Click()
'Macro pour bg - XL Pratique le 18/03/08 - Dan
Dim Ligne As Integer, total As Long
Ligne = Range("A65536").End(xlUp).Row
total = Range("A" & Ligne).Offset(0, 9)
Range("A" & Ligne).EntireRow.Insert
Range("Ligne_Matrice").Copy Destination:=Range("A" & Ligne)
Range("A" & Ligne).Offset(1, 9) = total + Range("A" & Ligne).Offset(-1, 9)
End sub

Amicalement

Dan

Merci beaucoup, pour la colonne J c'est exactement ça et ça fonctionne.

Juste un petit détail , pour les colonnes de C à I, j'avais prévu d'afficher dans

la case du bas la somme des cellules non vides du dessus ex pour D : =NBVAL(D$19:D34)

,

Amicalement

Re,

Rempalce la macro par celle-ci après

Private Sub CommandButton1_Click()
'Macro pour bg - XL Pratique le 20/03/08 - Dan
Dim Ligne As Integer
Dim i As Byte
Ligne = Range("A65536").End(xlUp).Row
Range("A" & Ligne).EntireRow.Insert
Range("Ligne_Matrice").Copy Destination:=Range("A" & Ligne)
For i = 3 To 10
With Range("A" & Ligne)
If i < 10 Then
    .Offset(1, i - 1) = WorksheetFunction.CountA(Range(Cells(19, i), Cells(Ligne, i)))
Else: .Offset(1, i - 1) = WorksheetFunction.Sum(Range(Cells(19, i), Cells(Ligne, i - 1)))
End If
End With
Next
End Sub

Amicalement

Dan

Bonsoir,

Je dois être envouté, quand je place un x par exemple dans la ligne

qui vient d'être rajoutée, le nombre de cellules non vide ne s'incrémente

pas pour la colonne en question.

Amicalement

Désole BG

3bengrzesik.zip (7.72 Ko)

Bonsoir,

Non tu n'es pas envouté mais si tu relis ta demande, tu voulais incrémenter en insérant une ligne. J'en ai donc déduit que le total des X ne devait se faire que si tu ajoutais une ligne au tableau.

Là si tu reprends la macro donnée, ajoute une ligne, mets un X dans une colonne puis ajoute une ligne à nouveau et tu verras que le nbre de X est adapté.

Si tu veux mettre des X et que le total des X soit ajouté directement (donc sans insérer une nouvelle ligne), utilise la macro ci-dessous :

Private Sub CommandButton1_Click() 
'Macro pour bg - XL Pratique le 20/03/08 - Dan
Dim Ligne As Integer
Dim i As Byte
Ligne = Range("A65536").End(xlUp).Row
Range("A" & Ligne).EntireRow.Insert
Range("Ligne_Matrice").Copy Destination:=Range("A" & Ligne)
For i = 3 To 10
With Range("A" & Ligne)
If i < 10 Then
.Offset(1, i - 1).FormulaR1C1 = "=COUNTA(R19C:R[-1]C)"
Else: .Offset(1, i - 1) = WorksheetFunction.Sum(Range(Cells(19, i), Cells(Ligne, i - 1)))
End If
End With
Next
End Sub

Amicalement

Dan

Bonsoir et désolé de mes difficultés à décrire mon problème

La dernière macro fonctionne parfaitement même après l'insertion

d'une nouvelle ligne pour la comptabilité des croix en bas de tableau. Seulement, je voudrais que chaque fois que je rajoute ou que j'enlève une croix, la somme de la colonne total soit recalculée avec le bon résultat en bas à droite.

Peut-être que je demande l'impossible.

J'ai essayé plusieurs combinaisons des macros précédentes mais sans résultat.

Amicalement

Bg

re,

lol ! on y arriver

Remplace cette ligne

Else: .Offset(1, i - 1) = WorksheetFunction.Sum(Range(Cells(19, i), Cells(Ligne, i - 1))) 

par :

Else: .Offset(1, i - 1) = "=SUM(R19C:R[-1]C)"

Amicalement

Dan

[size=150]Yes,

tu es the big boss

Merci Dan

A la prochaine [/size]

Re,

Pas de quoi.

Si tu pouvais mettre "resolu" dans le sujet du fil en reprenant ton premier post cela permettrait de voir que ta demande est résolue.

Merci et à bientôt

Dan

Rechercher des sujets similaires à "insertion ligne colonne vba"