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
A voir également:
- Décaler ligne dans macro automatiquement
- Partager photos en ligne - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Mètre en ligne - Guide
- Formulaire en ligne de meta - Guide
- Décaler une colonne excel - Guide
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.
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