Macro+recopier les formules
Résolu/Fermé
A voir également:
- Macro+recopier les formules
- Les formules excel - Guide
- Macro logiciel - Télécharger - Organisation
- Macro word - Guide
- Formules - Télécharger - Études & Formations
- Macro recorder - Télécharger - Confidentialité
7 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 681
15 déc. 2010 à 19:06
15 déc. 2010 à 19:06
bonjour
Le fait d'insérer une ligne ne génère pas d'événement.
On peut contourner cela en générant les formules lors de la saisie de la colonne A, si la cellule était vide auparavant avec ces 2 macro événementielles :
Pour ce qui est de protéger la feuille, il faudra faire attention car la macro mettant en place les formules doit pouvoir écrire dans ces cellules.
Pour cela il faut peut-être rajouter la suppression de la protection avant et la remise après.
Donne nous le résultat de tes test éventuels.
Le fait d'insérer une ligne ne génère pas d'événement.
On peut contourner cela en générant les formules lors de la saisie de la colonne A, si la cellule était vide auparavant avec ces 2 macro événementielles :
Public avant As Variant Private Sub Worksheet_SelectionChange(ByVal sel As Range) If sel.Column = 1 Then avant = sel.Value End Sub Private Sub Worksheet_Change(ByVal sel As Range) If sel.Cells.Count = 1 And sel.Row > 15 Then If sel.Column = 1 And avant = "" Then Cells(sel.Row - 1, 3).Resize(2, 8).FillDown End If End If End Sub
Pour ce qui est de protéger la feuille, il faudra faire attention car la macro mettant en place les formules doit pouvoir écrire dans ces cellules.
Pour cela il faut peut-être rajouter la suppression de la protection avant et la remise après.
Donne nous le résultat de tes test éventuels.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 681
16 déc. 2010 à 19:21
16 déc. 2010 à 19:21
bonjour
Il suffit de remplacer 1 par 2 pour le numéro de colonne :
Il suffit de remplacer 1 par 2 pour le numéro de colonne :
If sel.Column = 2 Then avant = sel.Value If sel.Column = 2 And avant = "" Then
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 681
17 déc. 2010 à 16:55
17 déc. 2010 à 16:55
bonjour
pour que la colonne A recopie également les formules?
Tu la rajoutes :
pour que la colonne A recopie également les formules?
Tu la rajoutes :
If sel.Column = 2 And avant = "" Then Cells(sel.Row - 1, 1).Resize(2, 1).FillDown ' colonne A Cells(sel.Row - 1, 3).Resize(2, 8).FillDown ' colonnes C:J End If
J'ai testé mais j'ai pas compris?
J'ai essayé d'insérer une ligne sur un petit test...
https://www.cjoint.com/?3mpwhcguERW
J'ai essayé d'insérer une ligne sur un petit test...
https://www.cjoint.com/?3mpwhcguERW
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 681
15 déc. 2010 à 22:15
15 déc. 2010 à 22:15
bonjour
Dans la ligne que tu as inséré tu saisis une valeur dans la cellule de ta colonne A insérée et les formules se mettent en place.
Si ma méthode ne convient pas à l'utilisation, il est possible de le faire autrement.
Dans la ligne que tu as inséré tu saisis une valeur dans la cellule de ta colonne A insérée et les formules se mettent en place.
Si ma méthode ne convient pas à l'utilisation, il est possible de le faire autrement.
Est-ce possible de remplacer la colonne A par la B et que les informations de la colonne A se retranscrie également ?