Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

comment intercepter l'insertion d'une ligne en vba

8 réponses
Avatar
Mario Limoges
Bonjour a tous
excel 2003

Je solicite vos connaissances afin de savoir comment faire pour intercepter
le code vba lors de l'insertion d'un ligne à une feuille excel.

Merci à l'avance

8 réponses

Avatar
LSteph
Bonsoir,

Oui alors sur ce coup là tu nous dis ce que tu entends par Intercepter
ou tu vas nous répondre que tu modifies ton approche!

;-)

@+

--
lSteph
(Vous ète autorisé à vous poser)

Mario Limoges a écrit :
Bonjour a tous
excel 2003

Je solicite vos connaissances afin de savoir comment faire pour intercepter
le code vba lors de l'insertion d'un ligne à une feuille excel.

Merci à l'avance




Avatar
LSteph
.. empêcher

mets un x en [a65536]

--
lSteph

Mario Limoges a écrit :
Bonjour a tous
excel 2003

Je solicite vos connaissances afin de savoir comment faire pour intercepter
le code vba lors de l'insertion d'un ligne à une feuille excel.

Merci à l'avance




Avatar
Mario Limoges
Salut Steph ;-)
tout dépend de la ou des réponses.

En fait j'amerais faire apparaitre un inputbox destiné à recevoir des
informations recues de l'utilisateur, une fois que la nouvelle ligne est
ajoutée.

"LSteph" a écrit dans le message de news:

Bonsoir,

Oui alors sur ce coup là tu nous dis ce que tu entends par Intercepter
ou tu vas nous répondre que tu modifies ton approche!

;-)

@+

--
lSteph
(Vous ète autorisé à vous poser)

Mario Limoges a écrit :
Bonjour a tous
excel 2003

Je solicite vos connaissances afin de savoir comment faire pour
intercepter le code vba lors de l'insertion d'un ligne à une feuille
excel.

Merci à l'avance




Avatar
Jacky
Bonsoir,

Peut-être un peu moins tordu, mais qui pourrait convenir
'------------
Dim x As Long
'-----------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
x = [a65536].End(3).Row
End Sub
'----------------
Private Sub Worksheet_Change(ByVal Target As Range)
If [a65536].End(3).Row > x Then
MsgBox "Isertion en ligne:" & Target.Row
x = [a65536].End(3).Row
End If
End Sub
'--------------------

--
Salutations
JJ


"MichDenis" a écrit dans le message de news:

Ce que tu demandes est parfaitement réalisable. Cependant si
tu n'es pas très féru en VBA, tu ne trouveras pas ça évident
de "jouer avec un module de classe".
Le principe est que chaque commande du menu à un "ID" (identificateur
numérique auquel correspond une action précise. Lorsque l'on connaît
cet id, il est possible de lui attribuer une autre tâche que celle qui lui
est
destiné par défaut par excel. Dans ton cas, l'ajout peut se faire par
3 commandes différentes dont les ID sont : 296, 3183, 3181. De plus
le cas échéant, il faut aussi arriver à contrôler les raccourcis
clavier...
Résultat : La chose est réalisable mais n'est pas évidente à réaliser...

Cependant, quelqu'un a déjà publié un machin-truc sur le sujet... et cela
est à la portée
de tous. Je n'ai pas son nom mais comme c'est une solution tordue, il doit
y avoir du AV derrnière. ;-)))

Voici la réponse de cet éminence grise !
'--------------------------------------
Comment déclencher une macro à chaque insertion de ligne ?
Cet événement n'est pas répertorié. Alors, une solution tordue :
sélectionne la ligne 1000 et nomme la "fin" (insertion / nom..)
insère un nouvel onglet dans le classeur dans lequel tu inscris n'importe

=ligne(fin)
masque cet onglet
dans la page de code associée avec cet onglet, recopie :
Private Sub Worksheet_Calculate()
MsgBox "aïe"
Sub

à chaque insertion (ou suppression) d'une ligne au dessus de la ligne
"fin",
la macro est lancée
'----------------------------------------




"Mario Limoges" a écrit dans le message de
news: xNU7k.27790$
Salut Steph ;-)
tout dépend de la ou des réponses.

En fait j'amerais faire apparaitre un inputbox destiné à recevoir des
informations recues de l'utilisateur, une fois que la nouvelle ligne est
ajoutée.

"LSteph" a écrit dans le message de news:

Bonsoir,

Oui alors sur ce coup là tu nous dis ce que tu entends par Intercepter
ou tu vas nous répondre que tu modifies ton approche!

;-)

@+

--
lSteph
(Vous ète autorisé à vous poser)

Mario Limoges a écrit :
Bonjour a tous
excel 2003

Je solicite vos connaissances afin de savoir comment faire pour
intercepter le code vba lors de l'insertion d'un ligne à une feuille
excel.

Merci à l'avance








Avatar
Jacky
> Qu'est-ce qui se passera si la ligne introduite est au-delà de :
[a65536].End(3).Row ?



C'est excel qui prévient gentiment que l'insertion n'est pas possible.

Qu'as-tu donc contre cette méthode ???
Qu'ai-je dont fait pour mériter un tel châtiment?

--
Salutations
JJ


"MichDenis" a écrit dans le message de news:
u$
Je ne recommanderait pas cette méthode à mon pire ennemi
mais à toi, c'est différent ! ;-) Vas-y !

Qu'est-ce qui se passera si la ligne introduite est au-delà de :
[a65536].End(3).Row ?



"Jacky" a écrit dans le message de news:

Bonsoir,

Peut-être un peu moins tordu, mais qui pourrait convenir
'------------
Dim x As Long
'-----------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
x = [a65536].End(3).Row
End Sub
'----------------
Private Sub Worksheet_Change(ByVal Target As Range)
If [a65536].End(3).Row > x Then
MsgBox "Isertion en ligne:" & Target.Row
x = [a65536].End(3).Row
End If
End Sub
'--------------------

--
Salutations
JJ


"MichDenis" a écrit dans le message de news:

Ce que tu demandes est parfaitement réalisable. Cependant si
tu n'es pas très féru en VBA, tu ne trouveras pas ça évident
de "jouer avec un module de classe".
Le principe est que chaque commande du menu à un "ID" (identificateur
numérique auquel correspond une action précise. Lorsque l'on connaît
cet id, il est possible de lui attribuer une autre tâche que celle qui
lui
est
destiné par défaut par excel. Dans ton cas, l'ajout peut se faire par
3 commandes différentes dont les ID sont : 296, 3183, 3181. De plus
le cas échéant, il faut aussi arriver à contrôler les raccourcis
clavier...
Résultat : La chose est réalisable mais n'est pas évidente à réaliser...

Cependant, quelqu'un a déjà publié un machin-truc sur le sujet... et cela
est à la portée
de tous. Je n'ai pas son nom mais comme c'est une solution tordue, il
doit
y avoir du AV derrnière. ;-)))

Voici la réponse de cet éminence grise !
'--------------------------------------
Comment déclencher une macro à chaque insertion de ligne ?
Cet événement n'est pas répertorié. Alors, une solution tordue :
sélectionne la ligne 1000 et nomme la "fin" (insertion / nom..)
insère un nouvel onglet dans le classeur dans lequel tu inscris n'importe

=ligne(fin)
masque cet onglet
dans la page de code associée avec cet onglet, recopie :
Private Sub Worksheet_Calculate()
MsgBox "aïe"
Sub

à chaque insertion (ou suppression) d'une ligne au dessus de la ligne
"fin",
la macro est lancée
'----------------------------------------




"Mario Limoges" a écrit dans le message de
news: xNU7k.27790$
Salut Steph ;-)
tout dépend de la ou des réponses.

En fait j'amerais faire apparaitre un inputbox destiné à recevoir des
informations recues de l'utilisateur, une fois que la nouvelle ligne est
ajoutée.

"LSteph" a écrit dans le message de news:

Bonsoir,

Oui alors sur ce coup là tu nous dis ce que tu entends par Intercepter
ou tu vas nous répondre que tu modifies ton approche!

;-)

@+

--
lSteph
(Vous ète autorisé à vous poser)

Mario Limoges a écrit :
Bonjour a tous
excel 2003

Je solicite vos connaissances afin de savoir comment faire pour
intercepter le code vba lors de l'insertion d'un ligne à une feuille
excel.

Merci à l'avance












Avatar
MichDenis
> Qu'est-ce qui se passera si la ligne introduite est au-delà de :
[a65536].End(3).Row ?



| C'est excel qui prévient gentiment que l'insertion n'est pas possible.

Et comment ta procédure lui transmet cette information ? Le demandeur
avait une restriction où la ligne à insérer devait être ?

Possible que je n'ai rien compris !
Avatar
Mario Limoges
Et bien oui Jacky (merci en passant pour l'intérêt démontré :-) ), une fois
la question lancée, j'ai imaginé cette solution qui pourrait convenir.

:-)

"Jacky" a écrit dans le message de news:

Bonsoir,

Peut-être un peu moins tordu, mais qui pourrait convenir
'------------
Dim x As Long
'-----------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
x = [a65536].End(3).Row
End Sub
'----------------
Private Sub Worksheet_Change(ByVal Target As Range)
If [a65536].End(3).Row > x Then
MsgBox "Isertion en ligne:" & Target.Row
x = [a65536].End(3).Row
End If
End Sub
'--------------------

--
Salutations
JJ


"MichDenis" a écrit dans le message de news:

Ce que tu demandes est parfaitement réalisable. Cependant si
tu n'es pas très féru en VBA, tu ne trouveras pas ça évident
de "jouer avec un module de classe".
Le principe est que chaque commande du menu à un "ID" (identificateur
numérique auquel correspond une action précise. Lorsque l'on connaît
cet id, il est possible de lui attribuer une autre tâche que celle qui
lui est
destiné par défaut par excel. Dans ton cas, l'ajout peut se faire par
3 commandes différentes dont les ID sont : 296, 3183, 3181. De plus
le cas échéant, il faut aussi arriver à contrôler les raccourcis
clavier...
Résultat : La chose est réalisable mais n'est pas évidente à réaliser...

Cependant, quelqu'un a déjà publié un machin-truc sur le sujet... et cela
est à la portée
de tous. Je n'ai pas son nom mais comme c'est une solution tordue, il
doit
y avoir du AV derrnière. ;-)))

Voici la réponse de cet éminence grise !
'--------------------------------------
Comment déclencher une macro à chaque insertion de ligne ?
Cet événement n'est pas répertorié. Alors, une solution tordue :
sélectionne la ligne 1000 et nomme la "fin" (insertion / nom..)
insère un nouvel onglet dans le classeur dans lequel tu inscris n'importe

=ligne(fin)
masque cet onglet
dans la page de code associée avec cet onglet, recopie :
Private Sub Worksheet_Calculate()
MsgBox "aïe"
Sub

à chaque insertion (ou suppression) d'une ligne au dessus de la ligne
"fin",
la macro est lancée
'----------------------------------------




"Mario Limoges" a écrit dans le message de
news: xNU7k.27790$
Salut Steph ;-)
tout dépend de la ou des réponses.

En fait j'amerais faire apparaitre un inputbox destiné à recevoir des
informations recues de l'utilisateur, une fois que la nouvelle ligne est
ajoutée.

"LSteph" a écrit dans le message de news:

Bonsoir,

Oui alors sur ce coup là tu nous dis ce que tu entends par Intercepter
ou tu vas nous répondre que tu modifies ton approche!

;-)

@+

--
lSteph
(Vous ète autorisé à vous poser)

Mario Limoges a écrit :
Bonjour a tous
excel 2003

Je solicite vos connaissances afin de savoir comment faire pour
intercepter le code vba lors de l'insertion d'un ligne à une feuille
excel.

Merci à l'avance












Avatar
Jacky
Re...
La demande initiale de ce fils était:
...comment faire pour intercepter le code vba lors de l'insertion d'un
ligne à une feuille excel.


Et je pense que le code que je propose remplit cette condition.
Mais comme tu le sais, je suis ouvert à toutes propositions ou commentaires
pour l'améliorer

Aussi, est-ce ta procédure gère les raccourci clavier ?
Que se passe-t-il si l'usager supprime une ou des lignes pour en ajouter
par la suite ?



Pas de problème chez moi....
Cela ne fonctionne pas dans ton environnement ?

--
Salutations
JJ


"MichDenis" a écrit dans le message de news:

Aussi, est-ce ta procédure gère les raccourci clavier ?

Dans mon environnement,

il s'agit de Ctrl + "-" 'Supprime une ligne
Ctrl + "+" 'Ajoute une ligne
"-" et "+" du clavier numérique.

Que se passe-t-il si l'usager supprime une ou des lignes pour en ajouter
par la suite ?

Est-ce que cette méthode est fiable ? Ça dépend de ton standard !!!
;-)



"Jacky" a écrit dans le message de news:

Qu'est-ce qui se passera si la ligne introduite est au-delà de :
[a65536].End(3).Row ?



C'est excel qui prévient gentiment que l'insertion n'est pas possible.

Qu'as-tu donc contre cette méthode ???
Qu'ai-je dont fait pour mériter un tel châtiment?

--
Salutations
JJ


"MichDenis" a écrit dans le message de news:
u$
Je ne recommanderait pas cette méthode à mon pire ennemi
mais à toi, c'est différent ! ;-) Vas-y !

Qu'est-ce qui se passera si la ligne introduite est au-delà de :
[a65536].End(3).Row ?



"Jacky" a écrit dans le message de news:

Bonsoir,

Peut-être un peu moins tordu, mais qui pourrait convenir
'------------
Dim x As Long
'-----------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
x = [a65536].End(3).Row
End Sub
'----------------
Private Sub Worksheet_Change(ByVal Target As Range)
If [a65536].End(3).Row > x Then
MsgBox "Isertion en ligne:" & Target.Row
x = [a65536].End(3).Row
End If
End Sub
'--------------------

--
Salutations
JJ


"MichDenis" a écrit dans le message de news:

Ce que tu demandes est parfaitement réalisable. Cependant si
tu n'es pas très féru en VBA, tu ne trouveras pas ça évident
de "jouer avec un module de classe".
Le principe est que chaque commande du menu à un "ID" (identificateur
numérique auquel correspond une action précise. Lorsque l'on connaît
cet id, il est possible de lui attribuer une autre tâche que celle qui
lui
est
destiné par défaut par excel. Dans ton cas, l'ajout peut se faire par
3 commandes différentes dont les ID sont : 296, 3183, 3181. De plus
le cas échéant, il faut aussi arriver à contrôler les raccourcis
clavier...
Résultat : La chose est réalisable mais n'est pas évidente à réaliser...

Cependant, quelqu'un a déjà publié un machin-truc sur le sujet... et
cela
est à la portée
de tous. Je n'ai pas son nom mais comme c'est une solution tordue, il
doit
y avoir du AV derrnière. ;-)))

Voici la réponse de cet éminence grise !
'--------------------------------------
Comment déclencher une macro à chaque insertion de ligne ?
Cet événement n'est pas répertorié. Alors, une solution tordue :
sélectionne la ligne 1000 et nomme la "fin" (insertion / nom..)
insère un nouvel onglet dans le classeur dans lequel tu inscris
n'importe

=ligne(fin)
masque cet onglet
dans la page de code associée avec cet onglet, recopie :
Private Sub Worksheet_Calculate()
MsgBox "aïe"
Sub

à chaque insertion (ou suppression) d'une ligne au dessus de la ligne
"fin",
la macro est lancée
'----------------------------------------




"Mario Limoges" a écrit dans le message de
news: xNU7k.27790$
Salut Steph ;-)
tout dépend de la ou des réponses.

En fait j'amerais faire apparaitre un inputbox destiné à recevoir des
informations recues de l'utilisateur, une fois que la nouvelle ligne
est
ajoutée.

"LSteph" a écrit dans le message de news:

Bonsoir,

Oui alors sur ce coup là tu nous dis ce que tu entends par Intercepter
ou tu vas nous répondre que tu modifies ton approche!

;-)

@+

--
lSteph
(Vous ète autorisé à vous poser)

Mario Limoges a écrit :
Bonjour a tous
excel 2003

Je solicite vos connaissances afin de savoir comment faire pour
intercepter le code vba lors de l'insertion d'un ligne à une feuille
excel.

Merci à l'avance