Décaler ligne dans macro automatiquement
Poutsy
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Voici mon problème :
Lorsque j'insere une ligne dans un fichier excel les lignes de ma macro ne se décalent pas automatiquement.
Exemple:
Sub Macro1()
If Cells(2, 3).Value = "XXX" Then
Cells(2, 6) = Cells(10, 6) + Cells(33, 6)
End If
End Sub
Pour cette macro, si j'insere une ligne entre la ligne 8 et 9, dans ma macro, je voudrais que Cells(10,6) devienne Cells(11,6).
Dans mes souvenirs ca se faisait automatiquement mais avec mon fichier non.
Quelqu'un saurais m'expliquer ?
Merci
Poutsy
Windows XP
Excel 2002
Voici mon problème :
Lorsque j'insere une ligne dans un fichier excel les lignes de ma macro ne se décalent pas automatiquement.
Exemple:
Sub Macro1()
If Cells(2, 3).Value = "XXX" Then
Cells(2, 6) = Cells(10, 6) + Cells(33, 6)
End If
End Sub
Pour cette macro, si j'insere une ligne entre la ligne 8 et 9, dans ma macro, je voudrais que Cells(10,6) devienne Cells(11,6).
Dans mes souvenirs ca se faisait automatiquement mais avec mon fichier non.
Quelqu'un saurais m'expliquer ?
Merci
Poutsy
Windows XP
Excel 2002
Configuration: Windows XP Internet Explorer 7.0
1 réponse
-
Bonjour
Pour réaliser le décalage, il faut mémoriser le numéro de la ligne dans un coin ( cellule M1 dans l'exemple)
la macro ci dessous est à installer dans le module feuille concerné. elle se déclenche lorsqu'une ligne entière (clic sur l'étiquette de ligne) est sélectionnée de la ligne 3 à la ligne au dessus de la cellule à implémenter.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim lig As Long With Target lig = Range("M1") If .Rows.Count > 1 Or .Columns.Count < 256 Or .Row >= lig Or .Row < 3 Then: Exit Sub Rows(.Row).Insert End With If Cells(2, 3).Value = "XXX" Then Cells(2, 6) = Cells(lig + 1, 6) + Cells(33, 6) ' Implémentation non demandée pour cells(33...???? Range("M1") = lig + 1 End If End Sub