flamalex
Messages postés29Date d'inscriptionjeudi 9 novembre 2000StatutMembreDernière intervention21 avril 2005
-
26 mars 2005 à 07:26
flamalex
Messages postés29Date d'inscriptionjeudi 9 novembre 2000StatutMembreDernière intervention21 avril 2005
-
29 mars 2005 à 21:16
Bonjour,
j'ai une feuille excel, ds laquelle je rentre des données dans les cellules A,B,C,D,E
je souhaiterai, que lorsque j'arrete de rentrer des données, (le numero de la ligne est alors aléatoire), je souhaiterai tirer un trait sous la derniere ligne de donnée.
et ce sous excel, en vba, et un commande button, qui ce trouve sur la feuille excel.
galopin01
Messages postés133Date d'inscriptionlundi 4 octobre 2004StatutMembreDernière intervention14 octobre 20111 27 mars 2005 à 07:06
Bonjour,
une autre possibilité (à coller dans le module de la feuille concernée) :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = Cells.SpecialCells(xlLastCell).Row Then
iH = Target.Top + Target.Height
iL = Cells(Target.Row, 6).Left
On Error Resume Next
ActiveSheet.Shapes("EndLine").Delete
ActiveSheet.Shapes.AddLine(0, iH, iL, iH).Select
Selection.Name = "EndLine"
Target.Offset(0, 1).Activate
End If
End Sub
A+
flamalex
Messages postés29Date d'inscriptionjeudi 9 novembre 2000StatutMembreDernière intervention21 avril 2005 28 mars 2005 à 14:20
merci bcp,
cette derniere solution , de galopin01, me va tres bien: sauf une chose, ce qui serait un plus! voici le code
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = Cells.SpecialCells(xlLastCell).Row Then
iH = Target.Top + Target.Height
iL = Cells(Target.Row, 7).Left
On Error Resume Next
ActiveSheet.Shapes("EndLine").Delete
ActiveSheet.Shapes.AddLine(0, iH - 1, iL, iH - 1).Select
Selection.Name = "EndLine"
Target.Offset(0, 0).Activate
End If
End Sub
actuellement, des que l'on rentre des données dans une des cellules des colonnes A,B,C,D,E,F,G, on a une ligne qui ce trace, juste en bas de la cellule saisie! donc tout va bien
j'aimerai que si la personne qui tape dans les cellules, et qui ce trompe, en fait admettons, elle tape trop...lol, donc elle efface ce kelle a tapé et decide de s'arreter la! en fait il faudrait, une sorte de rescan, qui effacerait l'ancienne ligne tracée, et retrace une ligne la ou il y a la derniere valeur. voila, ca serait une petite amelioration a apporter, mais je ne vois pas comment faire.
merci
a bientot
Vous n’avez pas trouvé la réponse que vous recherchez ?
galopin01
Messages postés133Date d'inscriptionlundi 4 octobre 2004StatutMembreDernière intervention14 octobre 20111 28 mars 2005 à 16:55
Bonjour,
il suffit de remplacer la ligne if... comme suitIf (Target.Row Cells.SpecialCells(xlLastCell).Row) And Not (Application.CountA(Rows(Target.Row)) 0) Then
A+
galopin01
Messages postés133Date d'inscriptionlundi 4 octobre 2004StatutMembreDernière intervention14 octobre 20111 29 mars 2005 à 10:00
heu... j'ai du trop fumer le VBA !
Private Sub Worksheet_Change(ByVal Target As Range)Y1 Target.Row Cells.SpecialCells(xlLastCell).RowY2 Application.CountA(Rows(Target.Row)) 0
iL = Cells(Target.Row, 6).Left
If Y1 And Not Y2 Then
iH = Target.Top + Target.Height
On Error Resume Next
ActiveSheet.Shapes("EndLine").Delete
ActiveSheet.Shapes.AddLine(0, iH, iL, iH).Select
Selection.Name = "EndLine"
Target.Offset(0, 1).Activate
ElseIf Y1 Then
ActiveSheet.Shapes("EndLine").Delete
ActiveSheet.Shapes.AddLine(0, Target.Top, iL, Target.Top).Select
Selection.Name = "EndLine"
Target.Offset(-1, 0).Activate
End If
End Sub
flamalex
Messages postés29Date d'inscriptionjeudi 9 novembre 2000StatutMembreDernière intervention21 avril 2005 29 mars 2005 à 14:31
lol!!!!! j'ai pas dis ca!!! eh! eh!
bon c pas mal, mais je vais t'ennuyer un peu!!
en fait kan tu supprimes la ligne ou tu saisies, effectivement le trait remonte, mais il remonte d'une ligne seulement!
alors qu'il ce peut ke la saisie d'avant est ete faite une , deux, voir trois ou4 lignes avant, tu vois , en fait c aléatoire, tu vois ce ke je veux dure, je sais pas si je m'exprime bien, c'est pas evident!
mais sinon, ouhai c'est pas mal, franchement merci
je sais pas si tu auras la patient lol, de m'aider encore un peu!!
mais merci kan meme!!
galopin01
Messages postés133Date d'inscriptionlundi 4 octobre 2004StatutMembreDernière intervention14 octobre 20111 29 mars 2005 à 21:04
sorry,
ça n'a plus rien à voir avec la question de départ !
En fait si tu dois supprimer une partie de ton tableau tu as plus vite fait de supprimer directement toutes les lignes indésirables.
Il en va de même pour l'avant dernière ligne : tu dois d'abord supprimer la dernière pour que la macro s'applique à la nouvelle dernière ligne.
Cette macro n'est pas faite pour gérer des tableaux à géométrie variable juste pour placer un trait au dessus ou en dessous de la dernière ligne, selon qu'elle est vide ou écrite.
+
flamalex
Messages postés29Date d'inscriptionjeudi 9 novembre 2000StatutMembreDernière intervention21 avril 2005 29 mars 2005 à 21:16
ouhai oky jav bien compris, mais ya pas un moyen, de faire une boucle, pour ke le code rescan, les cellules vide ou non, et tire un trait en bas de la cellule pleine?