XL 2013 Insertion de ligne en fonction de deux conditions

  • Initiateur de la discussion Initiateur de la discussion momo
  • Date de début Date de début
  • Mots-clés Mots-clés
    job75

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 !

momo

XLDnaute Occasionnel
Bonjour à tous,

Je voudrais solliciter votre concours pour m'aider à compléter une macro que Job m'avait aidé en 2016 à réaliser

Je voudrais ajouter à sa macro une deuxième condition qui selon la valeur d'un cellule se déclenchera automatiquement pour créer le nombre de ligne voulu et supprimer les lignes insérées lorsque l'on change la valeur de la cellule.

En espérant votre retour sur la question
 

Pièces jointes

Bonjour momo,

Il suffit d'ajouter un test dans la macro InsererLignes :
Code:
If t(i, 3) = "Variable" And IsNumeric(ref(i, 1)) Then
et de coller cette macro dans la 1ère feuille (clic droit sur l'onglet et Visualiser le code) :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [C:C]) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Application.EnableEvents = False
SupprimerLignes
InsererLignes
Application.EnableEvents = True
End Sub
Fichier (3).

PS : votre fichier était vérolé par une feuille VBA parasite, je l'ai refait.

A+
 

Pièces jointes

Bonjour momo,

Il suffit d'ajouter un test dans la macro InsererLignes :
Code:
If t(i, 3) = "Variable" And IsNumeric(ref(i, 1)) Then
et de coller cette macro dans la 1ère feuille (clic droit sur l'onglet et Visualiser le code) :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [C:C]) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Application.EnableEvents = False
SupprimerLignes
InsererLignes
Application.EnableEvents = True
End Sub
Fichier (3).

PS : votre fichier était vérolé par une feuille VBA parasite, je l'ai refait.

A+

Merci Job! C'est exactement le résultat escompté!
 
Bonjour Job

Un petit soucis avec la macro d'hier , elle change les formules existant dasn les autres plages de mon fichier réel

=SIERREUR(RECHERCHEH($J11;PERIOD;2;FAUX);0)

devient après mis à jour de la macro

=SIERREUR(RECHERCHEH(RC10;PERIOD;2;FAUX);0)
 
Bonjour momo, le forum,

Effectivement puisque l'on mémorise les formules en notation R1C1 il faut préciser :

- en fin de InsererLignes => If n Then [A2].Resize(n, 8).FormulaR1C1 = rest

- dans SupprimerLignes => If n Then [A2].Resize(n, 8).FormulaR1C1 = t

Avec uniquement des références relatives il n'y avait pas de problème car alors VBA ne peut pas se tromper.

A+
 
Bonjour momo, le forum,

Effectivement puisque l'on mémorise les formules en notation R1C1 il faut préciser :

- en fin de InsererLignes => If n Then [A2].Resize(n, 8).FormulaR1C1 = rest

- dans SupprimerLignes => If n Then [A2].Resize(n, 8).FormulaR1C1 = t

Avec uniquement des références relatives il n'y avait pas de problème car alors VBA ne peut pas se tromper.

A+
Bonsoir Job

je sollicite votre aide pour une ultime apport à la macro Ô combien complète que vous m'avez aidé à faire.
Je voudrais que la recopie entière des ligne ne se fasse plus
Ceci parce que manuellement je remplis certaines colonnes d'information différentes et lorsque la macro s'actualise , elle efface logiquement les données manuelles que j'ai écrites
Je vous remercie par avance
Bonne fin de soirée
 
- 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