Bonsoir à tous.
J'ai fait un tableau pour suivre le traitement des SAV chez nous.
Il y a plusieurs colonnes, : Date, qui, quoi, fini le, et des formules
qui calcule des trucs divers.
Au départ nous dirons que nous avons 10 lignes blanches à remplir par
des SAV : les lignes 10 à 20.
Ligne 22 il y a des formules de récapitulation (SOMME et MOYENNE) qui
traitent les SAV des lignes 10 à 20.
J'ai nommé la plage des lignes 10 à 21 "LignesSAV". Lorsqu'on,
inserre des lignes entre 10 et 20, cette plage nommée s'allonge toute
seule puisque elle fait une ligne de plus que les lignes SAV.
Lorsque Gaston Lagaffe voudra remplir un 11eme SAV il se mettra ligne
20 et voudra inserrer une ligne vierge juste en dessous, ligne 21
Comme ce tableau est protégé par Mot de passe, j'ai fait un bouton
qui : enleve la protection + copie la ligne du dessus + inserre une
ligne blanche + fait un collage special formules et formats +
reprotege.
Ca marche bien tant que Gaston ne se met pas par erreur ligne 6 ou
ligne 38. Dans ce cas il va déglinguer mon tableau et bêtement
inserrer une ligne qui ne sera PAS traitée par la recapitulation ligne
22....
J'ai planté le décor, voici la QUESTION :
Je voudrai donc que ma macro d'insertion de ligne ne se lance que SI
l'utilisateur sélectionne une cellule dans l'avant dernière ligne de
la plage nommée : la ligne 20 (qui deviendra 21 puis 22 au fur et à
mesure des insertions)
Dans le cas inverse, qu'elle ne se lance pas mais affiche un message
box " NON GASTON : Selectionne une cellule de la ligne du dernier SAV
rempli avant d'appuyer sur le bouton inserrer"
Gaston ne peux pas supprimer de ligne, donc ça n'intervient pas. OUF.
Merci d'avance
Fred
Bonsoir à tous.
J'ai fait un tableau pour suivre le traitement des SAV chez nous.
Il y a plusieurs colonnes, : Date, qui, quoi, fini le, et des formules
qui calcule des trucs divers.
Au départ nous dirons que nous avons 10 lignes blanches à remplir par
des SAV : les lignes 10 à 20.
Ligne 22 il y a des formules de récapitulation (SOMME et MOYENNE) qui
traitent les SAV des lignes 10 à 20.
J'ai nommé la plage des lignes 10 à 21 "LignesSAV". Lorsqu'on,
inserre des lignes entre 10 et 20, cette plage nommée s'allonge toute
seule puisque elle fait une ligne de plus que les lignes SAV.
Lorsque Gaston Lagaffe voudra remplir un 11eme SAV il se mettra ligne
20 et voudra inserrer une ligne vierge juste en dessous, ligne 21
Comme ce tableau est protégé par Mot de passe, j'ai fait un bouton
qui : enleve la protection + copie la ligne du dessus + inserre une
ligne blanche + fait un collage special formules et formats +
reprotege.
Ca marche bien tant que Gaston ne se met pas par erreur ligne 6 ou
ligne 38. Dans ce cas il va déglinguer mon tableau et bêtement
inserrer une ligne qui ne sera PAS traitée par la recapitulation ligne
22....
J'ai planté le décor, voici la QUESTION :
Je voudrai donc que ma macro d'insertion de ligne ne se lance que SI
l'utilisateur sélectionne une cellule dans l'avant dernière ligne de
la plage nommée : la ligne 20 (qui deviendra 21 puis 22 au fur et à
mesure des insertions)
Dans le cas inverse, qu'elle ne se lance pas mais affiche un message
box " NON GASTON : Selectionne une cellule de la ligne du dernier SAV
rempli avant d'appuyer sur le bouton inserrer"
Gaston ne peux pas supprimer de ligne, donc ça n'intervient pas. OUF.
Merci d'avance
Fred
Bonsoir à tous.
J'ai fait un tableau pour suivre le traitement des SAV chez nous.
Il y a plusieurs colonnes, : Date, qui, quoi, fini le, et des formules
qui calcule des trucs divers.
Au départ nous dirons que nous avons 10 lignes blanches à remplir par
des SAV : les lignes 10 à 20.
Ligne 22 il y a des formules de récapitulation (SOMME et MOYENNE) qui
traitent les SAV des lignes 10 à 20.
J'ai nommé la plage des lignes 10 à 21 "LignesSAV". Lorsqu'on,
inserre des lignes entre 10 et 20, cette plage nommée s'allonge toute
seule puisque elle fait une ligne de plus que les lignes SAV.
Lorsque Gaston Lagaffe voudra remplir un 11eme SAV il se mettra ligne
20 et voudra inserrer une ligne vierge juste en dessous, ligne 21
Comme ce tableau est protégé par Mot de passe, j'ai fait un bouton
qui : enleve la protection + copie la ligne du dessus + inserre une
ligne blanche + fait un collage special formules et formats +
reprotege.
Ca marche bien tant que Gaston ne se met pas par erreur ligne 6 ou
ligne 38. Dans ce cas il va déglinguer mon tableau et bêtement
inserrer une ligne qui ne sera PAS traitée par la recapitulation ligne
22....
J'ai planté le décor, voici la QUESTION :
Je voudrai donc que ma macro d'insertion de ligne ne se lance que SI
l'utilisateur sélectionne une cellule dans l'avant dernière ligne de
la plage nommée : la ligne 20 (qui deviendra 21 puis 22 au fur et à
mesure des insertions)
Dans le cas inverse, qu'elle ne se lance pas mais affiche un message
box " NON GASTON : Selectionne une cellule de la ligne du dernier SAV
rempli avant d'appuyer sur le bouton inserrer"
Gaston ne peux pas supprimer de ligne, donc ça n'intervient pas. OUF.
Merci d'avance
Fred
*Bonjour Fred*,
Pas besoin, à partir du moment que tu sais où inserer une ligne,
remplace tes "Selection" par Range("A20") ou, avant, fait :
Range("A20").SelectBonsoir à tous.
J'ai fait un tableau pour suivre le traitement des SAV chez nous.
Il y a plusieurs colonnes, : Date, qui, quoi, fini le, et des formules
qui calcule des trucs divers.
Au départ nous dirons que nous avons 10 lignes blanches à remplir p ar
des SAV : les lignes 10 à 20.
Ligne 22 il y a des formules de récapitulation (SOMME et MOYENNE) qui
traitent les SAV des lignes 10 à 20.
J'ai nommé la plage des lignes 10 à 21 "LignesSAV". Lorsqu'on,
inserre des lignes entre 10 et 20, cette plage nommée s'allonge toute
seule puisque elle fait une ligne de plus que les lignes SAV.
Lorsque Gaston Lagaffe voudra remplir un 11eme SAV il se mettra ligne
20 et voudra inserrer une ligne vierge juste en dessous, ligne 21
Comme ce tableau est protégé par Mot de passe, j'ai fait un bouton
qui : enleve la protection + copie la ligne du dessus + inserre une
ligne blanche + fait un collage special formules et formats +
reprotege.
Ca marche bien tant que Gaston ne se met pas par erreur ligne 6 ou
ligne 38. Dans ce cas il va déglinguer mon tableau et bêtement
inserrer une ligne qui ne sera PAS traitée par la recapitulation ligne
22....
J'ai planté le décor, voici la QUESTION :
Je voudrai donc que ma macro d'insertion de ligne ne se lance que SI
l'utilisateur sélectionne une cellule dans l'avant dernière ligne de
la plage nommée : la ligne 20 (qui deviendra 21 puis 22 au fur et à
mesure des insertions)
Dans le cas inverse, qu'elle ne se lance pas mais affiche un message
box " NON GASTON : Selectionne une cellule de la ligne du dernier SAV
rempli avant d'appuyer sur le bouton inserrer"
Gaston ne peux pas supprimer de ligne, donc ça n'intervient pas. OUF.
Merci d'avance
Fred
*Bonjour Fred*,
Pas besoin, à partir du moment que tu sais où inserer une ligne,
remplace tes "Selection" par Range("A20") ou, avant, fait :
Range("A20").Select
Bonsoir à tous.
J'ai fait un tableau pour suivre le traitement des SAV chez nous.
Il y a plusieurs colonnes, : Date, qui, quoi, fini le, et des formules
qui calcule des trucs divers.
Au départ nous dirons que nous avons 10 lignes blanches à remplir p ar
des SAV : les lignes 10 à 20.
Ligne 22 il y a des formules de récapitulation (SOMME et MOYENNE) qui
traitent les SAV des lignes 10 à 20.
J'ai nommé la plage des lignes 10 à 21 "LignesSAV". Lorsqu'on,
inserre des lignes entre 10 et 20, cette plage nommée s'allonge toute
seule puisque elle fait une ligne de plus que les lignes SAV.
Lorsque Gaston Lagaffe voudra remplir un 11eme SAV il se mettra ligne
20 et voudra inserrer une ligne vierge juste en dessous, ligne 21
Comme ce tableau est protégé par Mot de passe, j'ai fait un bouton
qui : enleve la protection + copie la ligne du dessus + inserre une
ligne blanche + fait un collage special formules et formats +
reprotege.
Ca marche bien tant que Gaston ne se met pas par erreur ligne 6 ou
ligne 38. Dans ce cas il va déglinguer mon tableau et bêtement
inserrer une ligne qui ne sera PAS traitée par la recapitulation ligne
22....
J'ai planté le décor, voici la QUESTION :
Je voudrai donc que ma macro d'insertion de ligne ne se lance que SI
l'utilisateur sélectionne une cellule dans l'avant dernière ligne de
la plage nommée : la ligne 20 (qui deviendra 21 puis 22 au fur et à
mesure des insertions)
Dans le cas inverse, qu'elle ne se lance pas mais affiche un message
box " NON GASTON : Selectionne une cellule de la ligne du dernier SAV
rempli avant d'appuyer sur le bouton inserrer"
Gaston ne peux pas supprimer de ligne, donc ça n'intervient pas. OUF.
Merci d'avance
Fred
*Bonjour Fred*,
Pas besoin, à partir du moment que tu sais où inserer une ligne,
remplace tes "Selection" par Range("A20") ou, avant, fait :
Range("A20").SelectBonsoir à tous.
J'ai fait un tableau pour suivre le traitement des SAV chez nous.
Il y a plusieurs colonnes, : Date, qui, quoi, fini le, et des formules
qui calcule des trucs divers.
Au départ nous dirons que nous avons 10 lignes blanches à remplir p ar
des SAV : les lignes 10 à 20.
Ligne 22 il y a des formules de récapitulation (SOMME et MOYENNE) qui
traitent les SAV des lignes 10 à 20.
J'ai nommé la plage des lignes 10 à 21 "LignesSAV". Lorsqu'on,
inserre des lignes entre 10 et 20, cette plage nommée s'allonge toute
seule puisque elle fait une ligne de plus que les lignes SAV.
Lorsque Gaston Lagaffe voudra remplir un 11eme SAV il se mettra ligne
20 et voudra inserrer une ligne vierge juste en dessous, ligne 21
Comme ce tableau est protégé par Mot de passe, j'ai fait un bouton
qui : enleve la protection + copie la ligne du dessus + inserre une
ligne blanche + fait un collage special formules et formats +
reprotege.
Ca marche bien tant que Gaston ne se met pas par erreur ligne 6 ou
ligne 38. Dans ce cas il va déglinguer mon tableau et bêtement
inserrer une ligne qui ne sera PAS traitée par la recapitulation ligne
22....
J'ai planté le décor, voici la QUESTION :
Je voudrai donc que ma macro d'insertion de ligne ne se lance que SI
l'utilisateur sélectionne une cellule dans l'avant dernière ligne de
la plage nommée : la ligne 20 (qui deviendra 21 puis 22 au fur et à
mesure des insertions)
Dans le cas inverse, qu'elle ne se lance pas mais affiche un message
box " NON GASTON : Selectionne une cellule de la ligne du dernier SAV
rempli avant d'appuyer sur le bouton inserrer"
Gaston ne peux pas supprimer de ligne, donc ça n'intervient pas. OUF.
Merci d'avance
Fred
*Bonjour Fred*,
Pas besoin, à partir du moment que tu sais où inserer une ligne,
remplace tes "Selection" par Range("A20") ou, avant, fait :
Range("A20").SelectBonsoir à tous.
J'ai fait un tableau pour suivre le traitement des SAV chez nous.
Il y a plusieurs colonnes, : Date, qui, quoi, fini le, et des formules
qui calcule des trucs divers.
Au départ nous dirons que nous avons 10 lignes blanches à remplir par
des SAV : les lignes 10 à 20.
Ligne 22 il y a des formules de récapitulation (SOMME et MOYENNE) qui
traitent les SAV des lignes 10 à 20.
J'ai nommé la plage des lignes 10 à 21 "LignesSAV". Lorsqu'on,
inserre des lignes entre 10 et 20, cette plage nommée s'allonge toute
seule puisque elle fait une ligne de plus que les lignes SAV.
Lorsque Gaston Lagaffe voudra remplir un 11eme SAV il se mettra ligne
20 et voudra inserrer une ligne vierge juste en dessous, ligne 21
Comme ce tableau est protégé par Mot de passe, j'ai fait un bouton
qui : enleve la protection + copie la ligne du dessus + inserre une
ligne blanche + fait un collage special formules et formats +
reprotege.
Ca marche bien tant que Gaston ne se met pas par erreur ligne 6 ou
ligne 38. Dans ce cas il va déglinguer mon tableau et bêtement
inserrer une ligne qui ne sera PAS traitée par la recapitulation ligne
22....
J'ai planté le décor, voici la QUESTION :
Je voudrai donc que ma macro d'insertion de ligne ne se lance que SI
l'utilisateur sélectionne une cellule dans l'avant dernière ligne de
la plage nommée : la ligne 20 (qui deviendra 21 puis 22 au fur et à
mesure des insertions)
Dans le cas inverse, qu'elle ne se lance pas mais affiche un message
box " NON GASTON : Selectionne une cellule de la ligne du dernier SAV
rempli avant d'appuyer sur le bouton inserrer"
Gaston ne peux pas supprimer de ligne, donc ça n'intervient pas. OUF.
Merci d'avance
Fred
Bonsoir et merci.
Ca évidemment c'est simplissime et ça marcherai nickel MAIS....
Gaston va vouloir ordonner lui-même l'ordre de ses SAV. Donc pour ça
soit :
1° Si c'est chronologique, il va vouloir ajouter une ligne à la suite
des autres et dans ce cas ça n'est sous la ligne 20 qu'une seule fois.
(puis ce sera sous la ligne 21 puis sous 22 etc...) donc il faut bien
que la macro détecte que Gaston à selectionné l'avant dernière
ligne de la plage nommée.
2° Ou bien, il peux vouloir inserrer une ligne d'un autre SAV entre 2
lignes SAV existants (pour des raisons longuettes à expliquer) donc il
faut que la macro détecte que Gaston à sélectionné une cellule
entre la 2ème ET l'avant dernière ligne de la plage nommée.
Il faut donc résoudre le 2° qui permettra aussi le 1°.
Je ne veux pas faire un tri chronologique des lignes car toutes ne
seront pas datées....
Je crois qu'il s'agit de détecter que la cellule A selectionnée se
situe entre la 2ème et l'avant derniere ligne d'une plage nommée qui
s'allonge...
A vous l'antenne,
Fred
*Bonjour Fred*,
Pas besoin, à partir du moment que tu sais où inserer une ligne,
remplace tes "Selection" par Range("A20") ou, avant, fait :
Range("A20").Select
Bonsoir à tous.
J'ai fait un tableau pour suivre le traitement des SAV chez nous.
Il y a plusieurs colonnes, : Date, qui, quoi, fini le, et des formules
qui calcule des trucs divers.
Au départ nous dirons que nous avons 10 lignes blanches à remplir par
des SAV : les lignes 10 à 20.
Ligne 22 il y a des formules de récapitulation (SOMME et MOYENNE) qui
traitent les SAV des lignes 10 à 20.
J'ai nommé la plage des lignes 10 à 21 "LignesSAV". Lorsqu'on,
inserre des lignes entre 10 et 20, cette plage nommée s'allonge toute
seule puisque elle fait une ligne de plus que les lignes SAV.
Lorsque Gaston Lagaffe voudra remplir un 11eme SAV il se mettra ligne
20 et voudra inserrer une ligne vierge juste en dessous, ligne 21
Comme ce tableau est protégé par Mot de passe, j'ai fait un bouton
qui : enleve la protection + copie la ligne du dessus + inserre une
ligne blanche + fait un collage special formules et formats +
reprotege.
Ca marche bien tant que Gaston ne se met pas par erreur ligne 6 ou
ligne 38. Dans ce cas il va déglinguer mon tableau et bêtement
inserrer une ligne qui ne sera PAS traitée par la recapitulation ligne
22....
J'ai planté le décor, voici la QUESTION :
Je voudrai donc que ma macro d'insertion de ligne ne se lance que SI
l'utilisateur sélectionne une cellule dans l'avant dernière ligne de
la plage nommée : la ligne 20 (qui deviendra 21 puis 22 au fur et à
mesure des insertions)
Dans le cas inverse, qu'elle ne se lance pas mais affiche un message
box " NON GASTON : Selectionne une cellule de la ligne du dernier SAV
rempli avant d'appuyer sur le bouton inserrer"
Gaston ne peux pas supprimer de ligne, donc ça n'intervient pas. OUF.
Merci d'avance
Fred
Bonsoir et merci.
Ca évidemment c'est simplissime et ça marcherai nickel MAIS....
Gaston va vouloir ordonner lui-même l'ordre de ses SAV. Donc pour ça
soit :
1° Si c'est chronologique, il va vouloir ajouter une ligne à la suite
des autres et dans ce cas ça n'est sous la ligne 20 qu'une seule fois.
(puis ce sera sous la ligne 21 puis sous 22 etc...) donc il faut bien
que la macro détecte que Gaston à selectionné l'avant dernière
ligne de la plage nommée.
2° Ou bien, il peux vouloir inserrer une ligne d'un autre SAV entre 2
lignes SAV existants (pour des raisons longuettes à expliquer) donc il
faut que la macro détecte que Gaston à sélectionné une cellule
entre la 2ème ET l'avant dernière ligne de la plage nommée.
Il faut donc résoudre le 2° qui permettra aussi le 1°.
Je ne veux pas faire un tri chronologique des lignes car toutes ne
seront pas datées....
Je crois qu'il s'agit de détecter que la cellule A selectionnée se
situe entre la 2ème et l'avant derniere ligne d'une plage nommée qui
s'allonge...
A vous l'antenne,
Fred
*Bonjour Fred*,
Pas besoin, à partir du moment que tu sais où inserer une ligne,
remplace tes "Selection" par Range("A20") ou, avant, fait :
Range("A20").SelectBonsoir à tous.
J'ai fait un tableau pour suivre le traitement des SAV chez nous.
Il y a plusieurs colonnes, : Date, qui, quoi, fini le, et des formules
qui calcule des trucs divers.
Au départ nous dirons que nous avons 10 lignes blanches à remplir par
des SAV : les lignes 10 à 20.
Ligne 22 il y a des formules de récapitulation (SOMME et MOYENNE) qui
traitent les SAV des lignes 10 à 20.
J'ai nommé la plage des lignes 10 à 21 "LignesSAV". Lorsqu'on,
inserre des lignes entre 10 et 20, cette plage nommée s'allonge toute
seule puisque elle fait une ligne de plus que les lignes SAV.
Lorsque Gaston Lagaffe voudra remplir un 11eme SAV il se mettra ligne
20 et voudra inserrer une ligne vierge juste en dessous, ligne 21
Comme ce tableau est protégé par Mot de passe, j'ai fait un bouton
qui : enleve la protection + copie la ligne du dessus + inserre une
ligne blanche + fait un collage special formules et formats +
reprotege.
Ca marche bien tant que Gaston ne se met pas par erreur ligne 6 ou
ligne 38. Dans ce cas il va déglinguer mon tableau et bêtement
inserrer une ligne qui ne sera PAS traitée par la recapitulation ligne
22....
J'ai planté le décor, voici la QUESTION :
Je voudrai donc que ma macro d'insertion de ligne ne se lance que SI
l'utilisateur sélectionne une cellule dans l'avant dernière ligne de
la plage nommée : la ligne 20 (qui deviendra 21 puis 22 au fur et à
mesure des insertions)
Dans le cas inverse, qu'elle ne se lance pas mais affiche un message
box " NON GASTON : Selectionne une cellule de la ligne du dernier SAV
rempli avant d'appuyer sur le bouton inserrer"
Gaston ne peux pas supprimer de ligne, donc ça n'intervient pas. OUF.
Merci d'avance
Fred
Bonsoir et merci.
Ca évidemment c'est simplissime et ça marcherai nickel MAIS....
Gaston va vouloir ordonner lui-même l'ordre de ses SAV. Donc pour ça
soit :
1° Si c'est chronologique, il va vouloir ajouter une ligne à la suite
des autres et dans ce cas ça n'est sous la ligne 20 qu'une seule fois.
(puis ce sera sous la ligne 21 puis sous 22 etc...) donc il faut bien
que la macro détecte que Gaston à selectionné l'avant dernière
ligne de la plage nommée.
2° Ou bien, il peux vouloir inserrer une ligne d'un autre SAV entre 2
lignes SAV existants (pour des raisons longuettes à expliquer) donc il
faut que la macro détecte que Gaston à sélectionné une cellule
entre la 2ème ET l'avant dernière ligne de la plage nommée.
Il faut donc résoudre le 2° qui permettra aussi le 1°.
Je ne veux pas faire un tri chronologique des lignes car toutes ne
seront pas datées....
Je crois qu'il s'agit de détecter que la cellule A selectionnée se
situe entre la 2ème et l'avant derniere ligne d'une plage nommée qui
s'allonge...
A vous l'antenne,
Fred
*Bonjour Fred*,
Alors peut être :
Sub essai()
If Not Intersect(Selection, Range("LignesSAV")) Is Nothing Then
If Range("A" & Range("LignesSAV").Row + _
Range("LignesSAV").Rows.Count - 1) <> "" Then
Selection.EntireRow.Insert Shift:=xlDown
Else
Selection.EntireRow.Insert Shift:=xlDown
Rows("21:21").Delete Shift:=xlUp
End If
Else
MsgBox "Pas à la bonne place !"
End If
End Sub
Dis moi ce que tu en pense ;-)*Bonjour Fred*,
Pas besoin, à partir du moment que tu sais où inserer une ligne,
remplace tes "Selection" par Range("A20") ou, avant, fait :
Range("A20").SelectBonsoir à tous.
J'ai fait un tableau pour suivre le traitement des SAV chez nous.
Il y a plusieurs colonnes, : Date, qui, quoi, fini le, et des formules
qui calcule des trucs divers.
Au départ nous dirons que nous avons 10 lignes blanches à remplir par
des SAV : les lignes 10 à 20.
Ligne 22 il y a des formules de récapitulation (SOMME et MOYENNE) q ui
traitent les SAV des lignes 10 à 20.
J'ai nommé la plage des lignes 10 à 21 "LignesSAV". Lorsqu'on,
inserre des lignes entre 10 et 20, cette plage nommée s'allonge tou te
seule puisque elle fait une ligne de plus que les lignes SAV.
Lorsque Gaston Lagaffe voudra remplir un 11eme SAV il se mettra ligne
20 et voudra inserrer une ligne vierge juste en dessous, ligne 21
Comme ce tableau est protégé par Mot de passe, j'ai fait un bouton
qui : enleve la protection + copie la ligne du dessus + inserre une
ligne blanche + fait un collage special formules et formats +
reprotege.
Ca marche bien tant que Gaston ne se met pas par erreur ligne 6 ou
ligne 38. Dans ce cas il va déglinguer mon tableau et bêtement
inserrer une ligne qui ne sera PAS traitée par la recapitulation li gne
22....
J'ai planté le décor, voici la QUESTION :
Je voudrai donc que ma macro d'insertion de ligne ne se lance que SI
l'utilisateur sélectionne une cellule dans l'avant dernière ligne de
la plage nommée : la ligne 20 (qui deviendra 21 puis 22 au fur et à
mesure des insertions)
Dans le cas inverse, qu'elle ne se lance pas mais affiche un message
box " NON GASTON : Selectionne une cellule de la ligne du dernier SAV
rempli avant d'appuyer sur le bouton inserrer"
Gaston ne peux pas supprimer de ligne, donc ça n'intervient pas. OU F.
Merci d'avance
Fred
Bonsoir et merci.
Ca évidemment c'est simplissime et ça marcherai nickel MAIS....
Gaston va vouloir ordonner lui-même l'ordre de ses SAV. Donc pour ça
soit :
1° Si c'est chronologique, il va vouloir ajouter une ligne à la sui te
des autres et dans ce cas ça n'est sous la ligne 20 qu'une seule fois.
(puis ce sera sous la ligne 21 puis sous 22 etc...) donc il faut bien
que la macro détecte que Gaston à selectionné l'avant dernière
ligne de la plage nommée.
2° Ou bien, il peux vouloir inserrer une ligne d'un autre SAV entre 2
lignes SAV existants (pour des raisons longuettes à expliquer) donc il
faut que la macro détecte que Gaston à sélectionné une cellule
entre la 2ème ET l'avant dernière ligne de la plage nommée.
Il faut donc résoudre le 2° qui permettra aussi le 1°.
Je ne veux pas faire un tri chronologique des lignes car toutes ne
seront pas datées....
Je crois qu'il s'agit de détecter que la cellule A selectionnée se
situe entre la 2ème et l'avant derniere ligne d'une plage nommée qui
s'allonge...
A vous l'antenne,
Fred
Bonjour JLuc,
*Bonjour Fred*,
Alors peut être :
Sub essai()
If Not Intersect(Selection, Range("LignesSAV")) Is Nothing Then
If Range("A" & Range("LignesSAV").Row + _
Range("LignesSAV").Rows.Count - 1) <> "" Then
Selection.EntireRow.Insert Shift:=xlDown
Else
Selection.EntireRow.Insert Shift:=xlDown
Rows("21:21").Delete Shift:=xlUp
End If
Else
MsgBox "Pas à la bonne place !"
End If
End Sub
Dis moi ce que tu en pense ;-)
*Bonjour Fred*,
Pas besoin, à partir du moment que tu sais où inserer une ligne,
remplace tes "Selection" par Range("A20") ou, avant, fait :
Range("A20").Select
Bonsoir à tous.
J'ai fait un tableau pour suivre le traitement des SAV chez nous.
Il y a plusieurs colonnes, : Date, qui, quoi, fini le, et des formules
qui calcule des trucs divers.
Au départ nous dirons que nous avons 10 lignes blanches à remplir par
des SAV : les lignes 10 à 20.
Ligne 22 il y a des formules de récapitulation (SOMME et MOYENNE) q ui
traitent les SAV des lignes 10 à 20.
J'ai nommé la plage des lignes 10 à 21 "LignesSAV". Lorsqu'on,
inserre des lignes entre 10 et 20, cette plage nommée s'allonge tou te
seule puisque elle fait une ligne de plus que les lignes SAV.
Lorsque Gaston Lagaffe voudra remplir un 11eme SAV il se mettra ligne
20 et voudra inserrer une ligne vierge juste en dessous, ligne 21
Comme ce tableau est protégé par Mot de passe, j'ai fait un bouton
qui : enleve la protection + copie la ligne du dessus + inserre une
ligne blanche + fait un collage special formules et formats +
reprotege.
Ca marche bien tant que Gaston ne se met pas par erreur ligne 6 ou
ligne 38. Dans ce cas il va déglinguer mon tableau et bêtement
inserrer une ligne qui ne sera PAS traitée par la recapitulation li gne
22....
J'ai planté le décor, voici la QUESTION :
Je voudrai donc que ma macro d'insertion de ligne ne se lance que SI
l'utilisateur sélectionne une cellule dans l'avant dernière ligne de
la plage nommée : la ligne 20 (qui deviendra 21 puis 22 au fur et à
mesure des insertions)
Dans le cas inverse, qu'elle ne se lance pas mais affiche un message
box " NON GASTON : Selectionne une cellule de la ligne du dernier SAV
rempli avant d'appuyer sur le bouton inserrer"
Gaston ne peux pas supprimer de ligne, donc ça n'intervient pas. OU F.
Merci d'avance
Fred
Bonsoir et merci.
Ca évidemment c'est simplissime et ça marcherai nickel MAIS....
Gaston va vouloir ordonner lui-même l'ordre de ses SAV. Donc pour ça
soit :
1° Si c'est chronologique, il va vouloir ajouter une ligne à la sui te
des autres et dans ce cas ça n'est sous la ligne 20 qu'une seule fois.
(puis ce sera sous la ligne 21 puis sous 22 etc...) donc il faut bien
que la macro détecte que Gaston à selectionné l'avant dernière
ligne de la plage nommée.
2° Ou bien, il peux vouloir inserrer une ligne d'un autre SAV entre 2
lignes SAV existants (pour des raisons longuettes à expliquer) donc il
faut que la macro détecte que Gaston à sélectionné une cellule
entre la 2ème ET l'avant dernière ligne de la plage nommée.
Il faut donc résoudre le 2° qui permettra aussi le 1°.
Je ne veux pas faire un tri chronologique des lignes car toutes ne
seront pas datées....
Je crois qu'il s'agit de détecter que la cellule A selectionnée se
situe entre la 2ème et l'avant derniere ligne d'une plage nommée qui
s'allonge...
A vous l'antenne,
Fred
Bonjour JLuc,
*Bonjour Fred*,
Alors peut être :
Sub essai()
If Not Intersect(Selection, Range("LignesSAV")) Is Nothing Then
If Range("A" & Range("LignesSAV").Row + _
Range("LignesSAV").Rows.Count - 1) <> "" Then
Selection.EntireRow.Insert Shift:=xlDown
Else
Selection.EntireRow.Insert Shift:=xlDown
Rows("21:21").Delete Shift:=xlUp
End If
Else
MsgBox "Pas à la bonne place !"
End If
End Sub
Dis moi ce que tu en pense ;-)*Bonjour Fred*,
Pas besoin, à partir du moment que tu sais où inserer une ligne,
remplace tes "Selection" par Range("A20") ou, avant, fait :
Range("A20").SelectBonsoir à tous.
J'ai fait un tableau pour suivre le traitement des SAV chez nous.
Il y a plusieurs colonnes, : Date, qui, quoi, fini le, et des formules
qui calcule des trucs divers.
Au départ nous dirons que nous avons 10 lignes blanches à remplir par
des SAV : les lignes 10 à 20.
Ligne 22 il y a des formules de récapitulation (SOMME et MOYENNE) q ui
traitent les SAV des lignes 10 à 20.
J'ai nommé la plage des lignes 10 à 21 "LignesSAV". Lorsqu'on,
inserre des lignes entre 10 et 20, cette plage nommée s'allonge tou te
seule puisque elle fait une ligne de plus que les lignes SAV.
Lorsque Gaston Lagaffe voudra remplir un 11eme SAV il se mettra ligne
20 et voudra inserrer une ligne vierge juste en dessous, ligne 21
Comme ce tableau est protégé par Mot de passe, j'ai fait un bouton
qui : enleve la protection + copie la ligne du dessus + inserre une
ligne blanche + fait un collage special formules et formats +
reprotege.
Ca marche bien tant que Gaston ne se met pas par erreur ligne 6 ou
ligne 38. Dans ce cas il va déglinguer mon tableau et bêtement
inserrer une ligne qui ne sera PAS traitée par la recapitulation li gne
22....
J'ai planté le décor, voici la QUESTION :
Je voudrai donc que ma macro d'insertion de ligne ne se lance que SI
l'utilisateur sélectionne une cellule dans l'avant dernière ligne de
la plage nommée : la ligne 20 (qui deviendra 21 puis 22 au fur et à
mesure des insertions)
Dans le cas inverse, qu'elle ne se lance pas mais affiche un message
box " NON GASTON : Selectionne une cellule de la ligne du dernier SAV
rempli avant d'appuyer sur le bouton inserrer"
Gaston ne peux pas supprimer de ligne, donc ça n'intervient pas. OU F.
Merci d'avance
Fred
Bonsoir et merci.
Ca évidemment c'est simplissime et ça marcherai nickel MAIS....
Gaston va vouloir ordonner lui-même l'ordre de ses SAV. Donc pour ça
soit :
1° Si c'est chronologique, il va vouloir ajouter une ligne à la sui te
des autres et dans ce cas ça n'est sous la ligne 20 qu'une seule fois.
(puis ce sera sous la ligne 21 puis sous 22 etc...) donc il faut bien
que la macro détecte que Gaston à selectionné l'avant dernière
ligne de la plage nommée.
2° Ou bien, il peux vouloir inserrer une ligne d'un autre SAV entre 2
lignes SAV existants (pour des raisons longuettes à expliquer) donc il
faut que la macro détecte que Gaston à sélectionné une cellule
entre la 2ème ET l'avant dernière ligne de la plage nommée.
Il faut donc résoudre le 2° qui permettra aussi le 1°.
Je ne veux pas faire un tri chronologique des lignes car toutes ne
seront pas datées....
Je crois qu'il s'agit de détecter que la cellule A selectionnée se
situe entre la 2ème et l'avant derniere ligne d'une plage nommée qui
s'allonge...
A vous l'antenne,
Fred
Bonjour JLuc,
Bonjour JLuc,
Merci de ta solution qui détecte bien si je suis dans la bonne plage
et qui sinon envoi bien un message d'erreur.
1er SOUCIS.
Je ne comprends pas tes lignes de code et je ne vois pas comment
l'incorporer dans mes lignes de code. Visiblement tu inserre en dessus
et moi en dessous.
Peux-tu commenter (en vert) tes lignes ?
Et faire le menage des lignes qui font double emploi ?
Sub InserrerLigne()
2ème SOUCIS
Tu fais mention de la ligne 21, je ne comprends pas à quoi ca sert. De
plus celle-ci va changer de n° à chaque insertion d'une nouvelle
ligne ???
A te lire
Bonjour JLuc,
Merci de ta solution qui détecte bien si je suis dans la bonne plage
et qui sinon envoi bien un message d'erreur.
1er SOUCIS.
Je ne comprends pas tes lignes de code et je ne vois pas comment
l'incorporer dans mes lignes de code. Visiblement tu inserre en dessus
et moi en dessous.
Peux-tu commenter (en vert) tes lignes ?
Et faire le menage des lignes qui font double emploi ?
Sub InserrerLigne()
2ème SOUCIS
Tu fais mention de la ligne 21, je ne comprends pas à quoi ca sert. De
plus celle-ci va changer de n° à chaque insertion d'une nouvelle
ligne ???
A te lire
Bonjour JLuc,
Merci de ta solution qui détecte bien si je suis dans la bonne plage
et qui sinon envoi bien un message d'erreur.
1er SOUCIS.
Je ne comprends pas tes lignes de code et je ne vois pas comment
l'incorporer dans mes lignes de code. Visiblement tu inserre en dessus
et moi en dessous.
Peux-tu commenter (en vert) tes lignes ?
Et faire le menage des lignes qui font double emploi ?
Sub InserrerLigne()
2ème SOUCIS
Tu fais mention de la ligne 21, je ne comprends pas à quoi ca sert. De
plus celle-ci va changer de n° à chaque insertion d'une nouvelle
ligne ???
A te lire
Fred avait soumis l'idée :Bonjour JLuc,
Merci de ta solution qui détecte bien si je suis dans la bonne plage
et qui sinon envoi bien un message d'erreur.
1er SOUCIS.
Je ne comprends pas tes lignes de code et je ne vois pas comment
l'incorporer dans mes lignes de code. Visiblement tu inserre en dessus
et moi en dessous.
Peux-tu commenter (en vert) tes lignes ?
Et faire le menage des lignes qui font double emploi ?
Sub InserrerLigne()
'ActiveSheet.Unprotect 'Inactivé provisoirement
' Je teste si la cellule active est dans la plage "LignesSAV"
If Not Intersect(ActiveCell, Range("LignesSAV")) Is Nothing Then
' Si oui, je test si la derniere ligne de la plage est remplie
If Range("A" & Range("LignesSAV").Row + _
Range("LignesSAV").Rows.Count - 1) <> "" Then
' Si la derniere est remplie, j'insere une ligne au dessous
' (Offset ajouté)
ActiveCell.Offset(1,0).EntireRow.Insert Shift:=xlDown
Else
' Si elle est vide, j'insert en dessous de l'active et je supprime la
' derniere ligne vide (pour ne pas étendre la plage inutilement)
ActiveCell.Offset(1,0).EntireRow.Insert Shift:=xlDown
Rows("21:21").Delete Shift:=xlUp
End If
Else
' Je ne suis pas dans la plage pour inserer
MsgBox "Pas à la bonne place !"
End If
' ****************
ActiveCell.Rows("1:1").EntireRow.Select 'Etend la selection à la
ligne entiere.
Selection.Copy 'Copie la ligne entiere.
ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Select 'A partir
de la selection, descend d'une ligne
Selection.Insert Shift:=xlDown 'Inserre une ligne vierge
en dessous
ActiveCell.Range("A1:H1").Select 'Selectionne la partie
données (zone blanche)
' Cette ligne annule les pointillés que tu avit en faisant .Copy
' (Annule la selection de copie)
Application.CutCopyMode = False '? Je ne sais plus ce
que sa fait
' Ca sert à rien, vu qu'il n'y a pas de données
Selection.ClearContents 'efface les données de la
ligne neuve
ActiveCell.Select 'deselectionne la ligne en
ne selectionnant que la 1ere cellule
' ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True 'REproteger la feuille
Beep 'Signale la fin du
processus
' En fait, tu fais la même chose en un peu plus compliquer et inutile
' Tu peux, si tu le souhaite, enlever tout ce qui est entre *****
' ***************
End Sub
2ème SOUCIS
Tu fais mention de la ligne 21, je ne comprends pas à quoi ca sert. De
plus celle-ci va changer de n° à chaque insertion d'une nouvelle
ligne ???
A te lire
J'espere que mes explications sont assez clair :')
--
JLuc
Fred avait soumis l'idée :
Bonjour JLuc,
Merci de ta solution qui détecte bien si je suis dans la bonne plage
et qui sinon envoi bien un message d'erreur.
1er SOUCIS.
Je ne comprends pas tes lignes de code et je ne vois pas comment
l'incorporer dans mes lignes de code. Visiblement tu inserre en dessus
et moi en dessous.
Peux-tu commenter (en vert) tes lignes ?
Et faire le menage des lignes qui font double emploi ?
Sub InserrerLigne()
'ActiveSheet.Unprotect 'Inactivé provisoirement
' Je teste si la cellule active est dans la plage "LignesSAV"
If Not Intersect(ActiveCell, Range("LignesSAV")) Is Nothing Then
' Si oui, je test si la derniere ligne de la plage est remplie
If Range("A" & Range("LignesSAV").Row + _
Range("LignesSAV").Rows.Count - 1) <> "" Then
' Si la derniere est remplie, j'insere une ligne au dessous
' (Offset ajouté)
ActiveCell.Offset(1,0).EntireRow.Insert Shift:=xlDown
Else
' Si elle est vide, j'insert en dessous de l'active et je supprime la
' derniere ligne vide (pour ne pas étendre la plage inutilement)
ActiveCell.Offset(1,0).EntireRow.Insert Shift:=xlDown
Rows("21:21").Delete Shift:=xlUp
End If
Else
' Je ne suis pas dans la plage pour inserer
MsgBox "Pas à la bonne place !"
End If
' ****************
ActiveCell.Rows("1:1").EntireRow.Select 'Etend la selection à la
ligne entiere.
Selection.Copy 'Copie la ligne entiere.
ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Select 'A partir
de la selection, descend d'une ligne
Selection.Insert Shift:=xlDown 'Inserre une ligne vierge
en dessous
ActiveCell.Range("A1:H1").Select 'Selectionne la partie
données (zone blanche)
' Cette ligne annule les pointillés que tu avit en faisant .Copy
' (Annule la selection de copie)
Application.CutCopyMode = False '? Je ne sais plus ce
que sa fait
' Ca sert à rien, vu qu'il n'y a pas de données
Selection.ClearContents 'efface les données de la
ligne neuve
ActiveCell.Select 'deselectionne la ligne en
ne selectionnant que la 1ere cellule
' ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True 'REproteger la feuille
Beep 'Signale la fin du
processus
' En fait, tu fais la même chose en un peu plus compliquer et inutile
' Tu peux, si tu le souhaite, enlever tout ce qui est entre *****
' ***************
End Sub
2ème SOUCIS
Tu fais mention de la ligne 21, je ne comprends pas à quoi ca sert. De
plus celle-ci va changer de n° à chaque insertion d'une nouvelle
ligne ???
A te lire
J'espere que mes explications sont assez clair :')
--
JLuc
Fred avait soumis l'idée :Bonjour JLuc,
Merci de ta solution qui détecte bien si je suis dans la bonne plage
et qui sinon envoi bien un message d'erreur.
1er SOUCIS.
Je ne comprends pas tes lignes de code et je ne vois pas comment
l'incorporer dans mes lignes de code. Visiblement tu inserre en dessus
et moi en dessous.
Peux-tu commenter (en vert) tes lignes ?
Et faire le menage des lignes qui font double emploi ?
Sub InserrerLigne()
'ActiveSheet.Unprotect 'Inactivé provisoirement
' Je teste si la cellule active est dans la plage "LignesSAV"
If Not Intersect(ActiveCell, Range("LignesSAV")) Is Nothing Then
' Si oui, je test si la derniere ligne de la plage est remplie
If Range("A" & Range("LignesSAV").Row + _
Range("LignesSAV").Rows.Count - 1) <> "" Then
' Si la derniere est remplie, j'insere une ligne au dessous
' (Offset ajouté)
ActiveCell.Offset(1,0).EntireRow.Insert Shift:=xlDown
Else
' Si elle est vide, j'insert en dessous de l'active et je supprime la
' derniere ligne vide (pour ne pas étendre la plage inutilement)
ActiveCell.Offset(1,0).EntireRow.Insert Shift:=xlDown
Rows("21:21").Delete Shift:=xlUp
End If
Else
' Je ne suis pas dans la plage pour inserer
MsgBox "Pas à la bonne place !"
End If
' ****************
ActiveCell.Rows("1:1").EntireRow.Select 'Etend la selection à la
ligne entiere.
Selection.Copy 'Copie la ligne entiere.
ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Select 'A partir
de la selection, descend d'une ligne
Selection.Insert Shift:=xlDown 'Inserre une ligne vierge
en dessous
ActiveCell.Range("A1:H1").Select 'Selectionne la partie
données (zone blanche)
' Cette ligne annule les pointillés que tu avit en faisant .Copy
' (Annule la selection de copie)
Application.CutCopyMode = False '? Je ne sais plus ce
que sa fait
' Ca sert à rien, vu qu'il n'y a pas de données
Selection.ClearContents 'efface les données de la
ligne neuve
ActiveCell.Select 'deselectionne la ligne en
ne selectionnant que la 1ere cellule
' ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True 'REproteger la feuille
Beep 'Signale la fin du
processus
' En fait, tu fais la même chose en un peu plus compliquer et inutile
' Tu peux, si tu le souhaite, enlever tout ce qui est entre *****
' ***************
End Sub
2ème SOUCIS
Tu fais mention de la ligne 21, je ne comprends pas à quoi ca sert. De
plus celle-ci va changer de n° à chaque insertion d'une nouvelle
ligne ???
A te lire
J'espere que mes explications sont assez clair :')
--
JLuc
Bonsoir JLuc
Merci. Hou la la j'ai du mal ! !
C'est toujours comme ça, au début lol
J'ai collé ta macro dans un module SANS ce que tu trouve inutile.
1° - Elle détecte si on est en dessus de la plage nommée ou en
dessous : OK
2° - Si on est n'importe ou au milieu de la plage nommée elle inserre
une ligne mais qui ne contient pas les formules dont j'ai besoin dans
les colonnes i jusqu' y. Il faudrait donc remettre mes formules
inélégantes qui te font sourire ou obtenir le même résultat (Elles
proviennent de l'enregistreur)
C'est pas quelles me font sourir, mais si tu copy tes formules, tu ne
3° - Elle accepte d'inserrer une ligne si on est dans la dernière
ligne de la plage nommée ce qu'il ne faut pas. La plage nommée
contient 1 ligne de plus que de ligne SAV vides ou remplies ce qui
garantie qu'elle s'etend et que les fonctions SOMME incorporeront la
derniere ligne de donnée.
Je vois ce que tu veux dire, on va modifier ça !
4° - Je ne pense pas que le test de la derniere ligne de la plage
remplie ou pas soit oportun : on ne peux pas en déduire l'interet de
rajouter des lignes blanches. (De toute façon la derniere ligne est
toujours vide, le test devrait tester l'avant dernière ligne)
Gaston peux vouloir avoir des lignes blanches au milieu ou en bas du
tableau pour aérer ou les remplir au chantier à la main sur sa copie
papier, etc...
Bon je m'y perds moi aussi. Je te joins donc la feuille Excel qui
fonctionnait avec mon code mais dans laquelle je ne savais pas empecher
Gaston d'inserrer une ligne en dehors de la plage nommée.
J'imagine que cela te sera plus simple que de raisonner en aveugle.
Là, tu as raison ;-)
http://cjoint.com/?kBaNADuprl
Merci de ton courage si il t'en reste !
Encore un peu, je regarde tout ça ce soir :')
Fred
Bonsoir JLuc
Merci. Hou la la j'ai du mal ! !
C'est toujours comme ça, au début lol
J'ai collé ta macro dans un module SANS ce que tu trouve inutile.
1° - Elle détecte si on est en dessus de la plage nommée ou en
dessous : OK
2° - Si on est n'importe ou au milieu de la plage nommée elle inserre
une ligne mais qui ne contient pas les formules dont j'ai besoin dans
les colonnes i jusqu' y. Il faudrait donc remettre mes formules
inélégantes qui te font sourire ou obtenir le même résultat (Elles
proviennent de l'enregistreur)
C'est pas quelles me font sourir, mais si tu copy tes formules, tu ne
3° - Elle accepte d'inserrer une ligne si on est dans la dernière
ligne de la plage nommée ce qu'il ne faut pas. La plage nommée
contient 1 ligne de plus que de ligne SAV vides ou remplies ce qui
garantie qu'elle s'etend et que les fonctions SOMME incorporeront la
derniere ligne de donnée.
Je vois ce que tu veux dire, on va modifier ça !
4° - Je ne pense pas que le test de la derniere ligne de la plage
remplie ou pas soit oportun : on ne peux pas en déduire l'interet de
rajouter des lignes blanches. (De toute façon la derniere ligne est
toujours vide, le test devrait tester l'avant dernière ligne)
Gaston peux vouloir avoir des lignes blanches au milieu ou en bas du
tableau pour aérer ou les remplir au chantier à la main sur sa copie
papier, etc...
Bon je m'y perds moi aussi. Je te joins donc la feuille Excel qui
fonctionnait avec mon code mais dans laquelle je ne savais pas empecher
Gaston d'inserrer une ligne en dehors de la plage nommée.
J'imagine que cela te sera plus simple que de raisonner en aveugle.
Là, tu as raison ;-)
http://cjoint.com/?kBaNADuprl
Merci de ton courage si il t'en reste !
Encore un peu, je regarde tout ça ce soir :')
Fred
Bonsoir JLuc
Merci. Hou la la j'ai du mal ! !
C'est toujours comme ça, au début lol
J'ai collé ta macro dans un module SANS ce que tu trouve inutile.
1° - Elle détecte si on est en dessus de la plage nommée ou en
dessous : OK
2° - Si on est n'importe ou au milieu de la plage nommée elle inserre
une ligne mais qui ne contient pas les formules dont j'ai besoin dans
les colonnes i jusqu' y. Il faudrait donc remettre mes formules
inélégantes qui te font sourire ou obtenir le même résultat (Elles
proviennent de l'enregistreur)
C'est pas quelles me font sourir, mais si tu copy tes formules, tu ne
3° - Elle accepte d'inserrer une ligne si on est dans la dernière
ligne de la plage nommée ce qu'il ne faut pas. La plage nommée
contient 1 ligne de plus que de ligne SAV vides ou remplies ce qui
garantie qu'elle s'etend et que les fonctions SOMME incorporeront la
derniere ligne de donnée.
Je vois ce que tu veux dire, on va modifier ça !
4° - Je ne pense pas que le test de la derniere ligne de la plage
remplie ou pas soit oportun : on ne peux pas en déduire l'interet de
rajouter des lignes blanches. (De toute façon la derniere ligne est
toujours vide, le test devrait tester l'avant dernière ligne)
Gaston peux vouloir avoir des lignes blanches au milieu ou en bas du
tableau pour aérer ou les remplir au chantier à la main sur sa copie
papier, etc...
Bon je m'y perds moi aussi. Je te joins donc la feuille Excel qui
fonctionnait avec mon code mais dans laquelle je ne savais pas empecher
Gaston d'inserrer une ligne en dehors de la plage nommée.
J'imagine que cela te sera plus simple que de raisonner en aveugle.
Là, tu as raison ;-)
http://cjoint.com/?kBaNADuprl
Merci de ton courage si il t'en reste !
Encore un peu, je regarde tout ça ce soir :')
Fred
*Bonjour Fred*,Bonsoir JLuc
Merci. Hou la la j'ai du mal ! !
C'est toujours comme ça, au début lol
J'ai collé ta macro dans un module SANS ce que tu trouve inutile.
1° - Elle détecte si on est en dessus de la plage nommée ou en
dessous : OK
2° - Si on est n'importe ou au milieu de la plage nommée elle inser re
une ligne mais qui ne contient pas les formules dont j'ai besoin dans
les colonnes i jusqu' y. Il faudrait donc remettre mes formules
inélégantes qui te font sourire ou obtenir le même résultat (E lles
proviennent de l'enregistreur)
C'est pas quelles me font sourir, mais si tu copy tes formules, tu ne
les colle pas dans tes lignes apparement (je vais reverifier ce point)
3° - Elle accepte d'inserrer une ligne si on est dans la dernière
ligne de la plage nommée ce qu'il ne faut pas. La plage nommée
contient 1 ligne de plus que de ligne SAV vides ou remplies ce qui
garantie qu'elle s'etend et que les fonctions SOMME incorporeront la
derniere ligne de donnée.
Je vois ce que tu veux dire, on va modifier ça !
4° - Je ne pense pas que le test de la derniere ligne de la plage
remplie ou pas soit oportun : on ne peux pas en déduire l'interet de
rajouter des lignes blanches. (De toute façon la derniere ligne est
toujours vide, le test devrait tester l'avant dernière ligne)
Gaston peux vouloir avoir des lignes blanches au milieu ou en bas du
tableau pour aérer ou les remplir au chantier à la main sur sa copie
papier, etc...
Bon je m'y perds moi aussi. Je te joins donc la feuille Excel qui
fonctionnait avec mon code mais dans laquelle je ne savais pas empecher
Gaston d'inserrer une ligne en dehors de la plage nommée.
J'imagine que cela te sera plus simple que de raisonner en aveugle.
Là, tu as raison ;-)
http://cjoint.com/?kBaNADuprl
Merci de ton courage si il t'en reste !
Encore un peu, je regarde tout ça ce soir :')Fred
--
Jean Luc tu es du soir ou du matin ?
*Bonjour Fred*,
Bonsoir JLuc
Merci. Hou la la j'ai du mal ! !
C'est toujours comme ça, au début lol
J'ai collé ta macro dans un module SANS ce que tu trouve inutile.
1° - Elle détecte si on est en dessus de la plage nommée ou en
dessous : OK
2° - Si on est n'importe ou au milieu de la plage nommée elle inser re
une ligne mais qui ne contient pas les formules dont j'ai besoin dans
les colonnes i jusqu' y. Il faudrait donc remettre mes formules
inélégantes qui te font sourire ou obtenir le même résultat (E lles
proviennent de l'enregistreur)
C'est pas quelles me font sourir, mais si tu copy tes formules, tu ne
les colle pas dans tes lignes apparement (je vais reverifier ce point)
3° - Elle accepte d'inserrer une ligne si on est dans la dernière
ligne de la plage nommée ce qu'il ne faut pas. La plage nommée
contient 1 ligne de plus que de ligne SAV vides ou remplies ce qui
garantie qu'elle s'etend et que les fonctions SOMME incorporeront la
derniere ligne de donnée.
Je vois ce que tu veux dire, on va modifier ça !
4° - Je ne pense pas que le test de la derniere ligne de la plage
remplie ou pas soit oportun : on ne peux pas en déduire l'interet de
rajouter des lignes blanches. (De toute façon la derniere ligne est
toujours vide, le test devrait tester l'avant dernière ligne)
Gaston peux vouloir avoir des lignes blanches au milieu ou en bas du
tableau pour aérer ou les remplir au chantier à la main sur sa copie
papier, etc...
Bon je m'y perds moi aussi. Je te joins donc la feuille Excel qui
fonctionnait avec mon code mais dans laquelle je ne savais pas empecher
Gaston d'inserrer une ligne en dehors de la plage nommée.
J'imagine que cela te sera plus simple que de raisonner en aveugle.
Là, tu as raison ;-)
http://cjoint.com/?kBaNADuprl
Merci de ton courage si il t'en reste !
Encore un peu, je regarde tout ça ce soir :')
Fred
--
Jean Luc tu es du soir ou du matin ?
*Bonjour Fred*,Bonsoir JLuc
Merci. Hou la la j'ai du mal ! !
C'est toujours comme ça, au début lol
J'ai collé ta macro dans un module SANS ce que tu trouve inutile.
1° - Elle détecte si on est en dessus de la plage nommée ou en
dessous : OK
2° - Si on est n'importe ou au milieu de la plage nommée elle inser re
une ligne mais qui ne contient pas les formules dont j'ai besoin dans
les colonnes i jusqu' y. Il faudrait donc remettre mes formules
inélégantes qui te font sourire ou obtenir le même résultat (E lles
proviennent de l'enregistreur)
C'est pas quelles me font sourir, mais si tu copy tes formules, tu ne
les colle pas dans tes lignes apparement (je vais reverifier ce point)
3° - Elle accepte d'inserrer une ligne si on est dans la dernière
ligne de la plage nommée ce qu'il ne faut pas. La plage nommée
contient 1 ligne de plus que de ligne SAV vides ou remplies ce qui
garantie qu'elle s'etend et que les fonctions SOMME incorporeront la
derniere ligne de donnée.
Je vois ce que tu veux dire, on va modifier ça !
4° - Je ne pense pas que le test de la derniere ligne de la plage
remplie ou pas soit oportun : on ne peux pas en déduire l'interet de
rajouter des lignes blanches. (De toute façon la derniere ligne est
toujours vide, le test devrait tester l'avant dernière ligne)
Gaston peux vouloir avoir des lignes blanches au milieu ou en bas du
tableau pour aérer ou les remplir au chantier à la main sur sa copie
papier, etc...
Bon je m'y perds moi aussi. Je te joins donc la feuille Excel qui
fonctionnait avec mon code mais dans laquelle je ne savais pas empecher
Gaston d'inserrer une ligne en dehors de la plage nommée.
J'imagine que cela te sera plus simple que de raisonner en aveugle.
Là, tu as raison ;-)
http://cjoint.com/?kBaNADuprl
Merci de ton courage si il t'en reste !
Encore un peu, je regarde tout ça ce soir :')Fred
--
Jean Luc tu es du soir ou du matin ?
Jean Luc tu es du soir ou du matin ?
Du soir, le matin c'est trop dur d'avoir les yeux en face des trous lol
Ou alors comme moi : les 2 sauf XL (mais un peu moins pour le travail !)
XL j'y arrive presque les yeux fermés :')
Jean Luc tu es du soir ou du matin ?
Du soir, le matin c'est trop dur d'avoir les yeux en face des trous lol
Ou alors comme moi : les 2 sauf XL (mais un peu moins pour le travail !)
XL j'y arrive presque les yeux fermés :')
Jean Luc tu es du soir ou du matin ?
Du soir, le matin c'est trop dur d'avoir les yeux en face des trous lol
Ou alors comme moi : les 2 sauf XL (mais un peu moins pour le travail !)
XL j'y arrive presque les yeux fermés :')