comment intercepter l'insertion d'une ligne en vba

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LSteph
Le #7081521
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




LSteph
Le #7081501
.. 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




Mario Limoges
Le #7082351
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"
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




Jacky
Le #7082931
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"
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" 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"
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








Jacky
Le #7083071
> 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" 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"
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"
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" 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"
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












MichDenis
Le #7083061
> 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 !
Mario Limoges
Le #7083241
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"
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"
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" 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"
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












Jacky
Le #7093841
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"
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"
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" 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"
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"
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" 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"
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
















Publicité
Poster une réponse
Anonyme