recherche dernière cellule d'une ligne, récupérer sa valeur
3 réponses
Seb86
Bonjour,
Voilà j'ai une base de donnée classique,
Code client, nom, prénom etc...
à partir de la dernière colonne, je rentre les dates de visites du clients.
Toutes mes colonnes sont nommées, sauf évidemment à partir des dates de visite.
Je voudrais donc pouvoir savoir ou est la dernière cellule pleine de la ligne pour récupérer sa valeur dans une text box, le dernière visite, et dans la cellule de droite inscrire la date du jour de la visite en cours.
Voilà ce qui est en place,
La variable LnumL permet de connaitre le numéro de ligne pour différencier l'enregistrement d'un nouveau client de celle d'une modification de données
Dim DerCol As Long
'cherche la dernière colonne pleine
DerCol = Cells(LnumL, Cells.Columns.Count).End(xlLeft).Column
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michd
Bonjour, Dans la procédure, j'utilise ceci : With Feuil1 'OU Worksheets("Feuil1") Feuil1 représente la propriété "Name" de l'objet Worksheet Feuil1 dans l'expression Worksheets("Feuil1") représente le nom de l'onglet de la feuille. Les 2 cas de figure peuvent être utilisés. Il est préférable d'utiliser le nom de la propriété de l'objet Worksheet "Feuil1") pour les raisons suivantes : A ) Même si tu modifies le nom de l'onglet, cela ne touche pas le fonctionnement d'une macro B ) Après avoir tapé le point après "Feuil1", la liste des propriétés et méthodes de l'objet s'affiche. Tu n'as pas à les mémoriser et son usage évite les fautes d'orthographe dans le code. C ) L'exécution du code est plus rapide (même si ce n'est pas évident pour une petite procédure) l'humain ne fonctionne pas en nanosecondes! '------------------------------------------------------------- Sub test() Dim DerCol As Long 'Le 1 c'est pour la ligne 1 With Feuil1 'OU Worksheets("Feuil1") DerCol = .Rows(1).End(xlToRight).Column MsgBox Feuil1.Cells(1, DerCol).Value End With 'suppose que tu veux as plusieurs lignes et que tu 'veux connaître la dernière colonne occupée par 'une valeur, peu importe la ligne. Il n'y pas 'nécessairement une valeur pour chacune des lignes 'de cette dernière colonne. With Feuil1 'OU Worksheets("Feuil1") DerCol = .Range("1:5").Find("*", LookIn:=xlFormulas, _ SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column 'Même chose dans le cas où tu as des formules qui retournent 'des valeurs au lieu de valeurs dans les cellules. DerCol = .Range("1:5").Find("*", LookIn:=xlValues, _ SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column End With End Sub '------------------------------------------------------------- MichD "Seb86" a écrit dans le message de groupe de discussion : Bonjour, Voilà j'ai une base de donnée classique, Code client, nom, prénom etc... à partir de la dernière colonne, je rentre les dates de visites du clients. Toutes mes colonnes sont nommées, sauf évidemment à partir des dates de visite. Je voudrais donc pouvoir savoir ou est la dernière cellule pleine de la ligne pour récupérer sa valeur dans une text box, le dernière visite, et dans la cellule de droite inscrire la date du jour de la visite en cours. Voilà ce qui est en place, La variable LnumL permet de connaitre le numéro de ligne pour différencier l'enregistrement d'un nouveau client de celle d'une modification de données Dim DerCol As Long 'cherche la dernière colonne pleine DerCol = Cells(LnumL, Cells.Columns.Count).End(xlLeft).Column 'à l'enregistrement Cells(LnumL, Range("Courriel").Column) = Me.TBCourriel.Text Cells(LnumL, Range("Technique").Column) = Me.TBTechnique.Text Cells(LnumL, Range("Creation").Column) = Me.TBCreation.Text 'partie du code que je ne trouve pas à faire Cells(LnumL, dercol+1.column) = Me.TBDateJour.Text 'à la lecture Me.TBCode_Client.Text = Cells(kelligne, Range("Code_Client").Column) Me.TBCreation.Text = Cells(kelligne, Range("Creation").Column) 'partie du code que je n'arrive pas à faire Me.TBDateDerVis.Text = Cells(kelligne, DerCol.Column) J'espère avoir été assez compréhensible dans ma requête. D'avance merci. Seb.
Bonjour,
Dans la procédure, j'utilise ceci :
With Feuil1 'OU Worksheets("Feuil1")
Feuil1 représente la propriété "Name" de l'objet Worksheet
Feuil1 dans l'expression Worksheets("Feuil1") représente le nom de l'onglet de la feuille.
Les 2 cas de figure peuvent être utilisés. Il est préférable d'utiliser le nom de la propriété de
l'objet Worksheet "Feuil1")
pour les raisons suivantes :
A ) Même si tu modifies le nom de l'onglet, cela ne touche pas le fonctionnement d'une macro
B ) Après avoir tapé le point après "Feuil1", la liste des propriétés et méthodes de l'objet
s'affiche. Tu n'as pas à les mémoriser et son usage évite les fautes d'orthographe dans le code.
C ) L'exécution du code est plus rapide (même si ce n'est pas évident pour une petite procédure)
l'humain ne fonctionne pas en nanosecondes!
'-------------------------------------------------------------
Sub test()
Dim DerCol As Long
'Le 1 c'est pour la ligne 1
With Feuil1 'OU Worksheets("Feuil1")
DerCol = .Rows(1).End(xlToRight).Column
MsgBox Feuil1.Cells(1, DerCol).Value
End With
'suppose que tu veux as plusieurs lignes et que tu
'veux connaître la dernière colonne occupée par
'une valeur, peu importe la ligne. Il n'y pas
'nécessairement une valeur pour chacune des lignes
'de cette dernière colonne.
With Feuil1 'OU Worksheets("Feuil1")
DerCol = .Range("1:5").Find("*", LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
'Même chose dans le cas où tu as des formules qui retournent
'des valeurs au lieu de valeurs dans les cellules.
DerCol = .Range("1:5").Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
End With
End Sub
'-------------------------------------------------------------
MichD
"Seb86" a écrit dans le message de groupe de discussion :
n_idnTcqlLc5V93GnZ2dnUU7983NnZ2d@giganews.com...
Bonjour,
Voilà j'ai une base de donnée classique,
Code client, nom, prénom etc...
à partir de la dernière colonne, je rentre les dates de visites du clients.
Toutes mes colonnes sont nommées, sauf évidemment à partir des dates de visite.
Je voudrais donc pouvoir savoir ou est la dernière cellule pleine de la ligne
pour récupérer sa valeur dans une text box, le dernière visite, et dans la
cellule de droite inscrire la date du jour de la visite en cours.
Voilà ce qui est en place,
La variable LnumL permet de connaitre le numéro de ligne pour différencier
l'enregistrement d'un nouveau client de celle d'une modification de données
Dim DerCol As Long
'cherche la dernière colonne pleine
DerCol = Cells(LnumL, Cells.Columns.Count).End(xlLeft).Column
Bonjour, Dans la procédure, j'utilise ceci : With Feuil1 'OU Worksheets("Feuil1") Feuil1 représente la propriété "Name" de l'objet Worksheet Feuil1 dans l'expression Worksheets("Feuil1") représente le nom de l'onglet de la feuille. Les 2 cas de figure peuvent être utilisés. Il est préférable d'utiliser le nom de la propriété de l'objet Worksheet "Feuil1") pour les raisons suivantes : A ) Même si tu modifies le nom de l'onglet, cela ne touche pas le fonctionnement d'une macro B ) Après avoir tapé le point après "Feuil1", la liste des propriétés et méthodes de l'objet s'affiche. Tu n'as pas à les mémoriser et son usage évite les fautes d'orthographe dans le code. C ) L'exécution du code est plus rapide (même si ce n'est pas évident pour une petite procédure) l'humain ne fonctionne pas en nanosecondes! '------------------------------------------------------------- Sub test() Dim DerCol As Long 'Le 1 c'est pour la ligne 1 With Feuil1 'OU Worksheets("Feuil1") DerCol = .Rows(1).End(xlToRight).Column MsgBox Feuil1.Cells(1, DerCol).Value End With 'suppose que tu veux as plusieurs lignes et que tu 'veux connaître la dernière colonne occupée par 'une valeur, peu importe la ligne. Il n'y pas 'nécessairement une valeur pour chacune des lignes 'de cette dernière colonne. With Feuil1 'OU Worksheets("Feuil1") DerCol = .Range("1:5").Find("*", LookIn:=xlFormulas, _ SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column 'Même chose dans le cas où tu as des formules qui retournent 'des valeurs au lieu de valeurs dans les cellules. DerCol = .Range("1:5").Find("*", LookIn:=xlValues, _ SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column End With End Sub '------------------------------------------------------------- MichD "Seb86" a écrit dans le message de groupe de discussion : Bonjour, Voilà j'ai une base de donnée classique, Code client, nom, prénom etc... à partir de la dernière colonne, je rentre les dates de visites du clients. Toutes mes colonnes sont nommées, sauf évidemment à partir des dates de visite. Je voudrais donc pouvoir savoir ou est la dernière cellule pleine de la ligne pour récupérer sa valeur dans une text box, le dernière visite, et dans la cellule de droite inscrire la date du jour de la visite en cours. Voilà ce qui est en place, La variable LnumL permet de connaitre le numéro de ligne pour différencier l'enregistrement d'un nouveau client de celle d'une modification de données Dim DerCol As Long 'cherche la dernière colonne pleine DerCol = Cells(LnumL, Cells.Columns.Count).End(xlLeft).Column 'à l'enregistrement Cells(LnumL, Range("Courriel").Column) = Me.TBCourriel.Text Cells(LnumL, Range("Technique").Column) = Me.TBTechnique.Text Cells(LnumL, Range("Creation").Column) = Me.TBCreation.Text 'partie du code que je ne trouve pas à faire Cells(LnumL, dercol+1.column) = Me.TBDateJour.Text 'à la lecture Me.TBCode_Client.Text = Cells(kelligne, Range("Code_Client").Column) Me.TBCreation.Text = Cells(kelligne, Range("Creation").Column) 'partie du code que je n'arrive pas à faire Me.TBDateDerVis.Text = Cells(kelligne, DerCol.Column) J'espère avoir été assez compréhensible dans ma requête. D'avance merci. Seb.
isabelle
Bonjour, essayer comme ça, DerCol = Cells(LnumL, Cells.Columns.Count).End(xlToLeft).Column isabelle Le 2018-07-07 à 10:13, Seb86 a écrit :
Bonjour, Voilà j'ai une base de donnée classique, Code client, nom, prénom etc... à partir de la dernière colonne, je rentre les dates de visites du clients. Toutes mes colonnes sont nommées, sauf évidemment à partir des dates de visite. Je voudrais donc pouvoir savoir ou est la dernière cellule pleine de la ligne pour récupérer sa valeur dans une text box, le dernière visite, et dans la cellule de droite inscrire la date du jour de la visite en cours. Voilà ce qui est en place, La variable LnumL permet de connaitre le numéro de ligne pour différencier l'enregistrement d'un nouveau client de celle d'une modification de données Dim DerCol As Long 'cherche la dernière colonne pleine DerCol = Cells(LnumL, Cells.Columns.Count).End(xlLeft).Column 'à l'enregistrement Cells(LnumL, Range("Courriel").Column) = Me.TBCourriel.Text Cells(LnumL, Range("Technique").Column) = Me.TBTechnique.Text Cells(LnumL, Range("Creation").Column) = Me.TBCreation.Text 'partie du code que je ne trouve pas à faire Cells(LnumL, dercol+1.column) = Me.TBDateJour.Text 'à la lecture Me.TBCode_Client.Text = Cells(kelligne, Range("Code_Client").Column) Me.TBCreation.Text = Cells(kelligne, Range("Creation").Column) 'partie du code que je n'arrive pas à faire Me.TBDateDerVis.Text = Cells(kelligne, DerCol.Column) J'espère avoir été assez compréhensible dans ma requête. D'avance merci. Seb.
Bonjour,
Voilà j'ai une base de donnée classique,
Code client, nom, prénom etc...
à partir de la dernière colonne, je rentre les dates de visites du clients.
Toutes mes colonnes sont nommées, sauf évidemment à partir des dates de visite.
Je voudrais donc pouvoir savoir ou est la dernière cellule pleine de la ligne
pour récupérer sa valeur dans une text box, le dernière visite, et dans la
cellule de droite inscrire la date du jour de la visite en cours.
Voilà ce qui est en place,
La variable LnumL permet de connaitre le numéro de ligne pour différencier
l'enregistrement d'un nouveau client de celle d'une modification de données
Dim DerCol As Long
'cherche la dernière colonne pleine
DerCol = Cells(LnumL, Cells.Columns.Count).End(xlLeft).Column
Bonjour, essayer comme ça, DerCol = Cells(LnumL, Cells.Columns.Count).End(xlToLeft).Column isabelle Le 2018-07-07 à 10:13, Seb86 a écrit :
Bonjour, Voilà j'ai une base de donnée classique, Code client, nom, prénom etc... à partir de la dernière colonne, je rentre les dates de visites du clients. Toutes mes colonnes sont nommées, sauf évidemment à partir des dates de visite. Je voudrais donc pouvoir savoir ou est la dernière cellule pleine de la ligne pour récupérer sa valeur dans une text box, le dernière visite, et dans la cellule de droite inscrire la date du jour de la visite en cours. Voilà ce qui est en place, La variable LnumL permet de connaitre le numéro de ligne pour différencier l'enregistrement d'un nouveau client de celle d'une modification de données Dim DerCol As Long 'cherche la dernière colonne pleine DerCol = Cells(LnumL, Cells.Columns.Count).End(xlLeft).Column 'à l'enregistrement Cells(LnumL, Range("Courriel").Column) = Me.TBCourriel.Text Cells(LnumL, Range("Technique").Column) = Me.TBTechnique.Text Cells(LnumL, Range("Creation").Column) = Me.TBCreation.Text 'partie du code que je ne trouve pas à faire Cells(LnumL, dercol+1.column) = Me.TBDateJour.Text 'à la lecture Me.TBCode_Client.Text = Cells(kelligne, Range("Code_Client").Column) Me.TBCreation.Text = Cells(kelligne, Range("Creation").Column) 'partie du code que je n'arrive pas à faire Me.TBDateDerVis.Text = Cells(kelligne, DerCol.Column) J'espère avoir été assez compréhensible dans ma requête. D'avance merci. Seb.
seb86
Le samedi 07 Juillet 2018 à 16:13 par Seb86 :
Bonjour, Voilà j'ai une base de donnée classique, Code client, nom, prénom etc... à partir de la dernière colonne, je rentre les dates de visites du clients. Toutes mes colonnes sont nommées, sauf évidemment à partir des dates de visite. Je voudrais donc pouvoir savoir ou est la dernière cellule pleine de la ligne pour récupérer sa valeur dans une text box, le dernière visite, et dans la cellule de droite inscrire la date du jour de la visite en cours. Voilà ce qui est en place, La variable LnumL permet de connaitre le numéro de ligne pour différencier l'enregistrement d'un nouveau client de celle d'une modification de données Dim DerCol As Long 'cherche la dernière colonne pleine DerCol = Cells(LnumL, Cells.Columns.Count).End(xlLeft).Column 'à l'enregistrement Cells(LnumL, Range("Courriel").Column) = Me.TBCourriel.Text Cells(LnumL, Range("Technique").Column) = Me.TBTechnique.Text Cells(LnumL, Range("Creation").Column) = Me.TBCreation.Text 'partie du code que je ne trouve pas à faire Cells(LnumL, dercol+1.column) = Me.TBDateJour.Text 'à la lecture Me.TBCode_Client.Text = Cells(kelligne, Range("Code_Client").Column) Me.TBCreation.Text = Cells(kelligne, Range("Creation").Column) 'partie du code que je n'arrive pas à faire Me.TBDateDerVis.Text = Cells(kelligne, DerCol.Column) J'espère avoir été assez compréhensible dans ma requête. D'avance merci. Seb.
Bonjour Merci pour les réponses, je vais travailler dessus, je tiens au courant des résultats Seb
Le samedi 07 Juillet 2018 à 16:13 par Seb86 :
> Bonjour,
> Voilà j'ai une base de donnée classique,
> Code client, nom, prénom etc...
> à partir de la dernière colonne, je rentre les dates de visites
> du clients.
> Toutes mes colonnes sont nommées, sauf évidemment à partir
> des dates de visite.
> Je voudrais donc pouvoir savoir ou est la dernière cellule pleine de la
> ligne pour récupérer sa valeur dans une text box, le
> dernière visite, et dans la cellule de droite inscrire la date du jour
> de la visite en cours.
>
> Voilà ce qui est en place,
>
> La variable LnumL permet de connaitre le numéro de ligne pour
> différencier l'enregistrement d'un nouveau client de celle d'une
> modification de données
>
> Dim DerCol As Long
>
> 'cherche la dernière colonne pleine
> DerCol = Cells(LnumL, Cells.Columns.Count).End(xlLeft).Column
>
>
> 'à l'enregistrement
> Cells(LnumL, Range("Courriel").Column) = Me.TBCourriel.Text
> Cells(LnumL, Range("Technique").Column) = Me.TBTechnique.Text
> Cells(LnumL, Range("Creation").Column) = Me.TBCreation.Text
>
> 'partie du code que je ne trouve pas à faire
> Cells(LnumL, dercol+1.column) = Me.TBDateJour.Text
>
> 'à la lecture
> Me.TBCode_Client.Text = Cells(kelligne,
> Range("Code_Client").Column)
> Me.TBCreation.Text = Cells(kelligne, Range("Creation").Column)
>
> 'partie du code que je n'arrive pas à faire
> Me.TBDateDerVis.Text = Cells(kelligne, DerCol.Column)
>
> J'espère avoir été assez compréhensible dans ma
> requête.
>
> D'avance merci.
> Seb.
Bonjour
Merci pour les réponses, je vais travailler dessus, je tiens au courant des résultats
Seb
Bonjour, Voilà j'ai une base de donnée classique, Code client, nom, prénom etc... à partir de la dernière colonne, je rentre les dates de visites du clients. Toutes mes colonnes sont nommées, sauf évidemment à partir des dates de visite. Je voudrais donc pouvoir savoir ou est la dernière cellule pleine de la ligne pour récupérer sa valeur dans une text box, le dernière visite, et dans la cellule de droite inscrire la date du jour de la visite en cours. Voilà ce qui est en place, La variable LnumL permet de connaitre le numéro de ligne pour différencier l'enregistrement d'un nouveau client de celle d'une modification de données Dim DerCol As Long 'cherche la dernière colonne pleine DerCol = Cells(LnumL, Cells.Columns.Count).End(xlLeft).Column 'à l'enregistrement Cells(LnumL, Range("Courriel").Column) = Me.TBCourriel.Text Cells(LnumL, Range("Technique").Column) = Me.TBTechnique.Text Cells(LnumL, Range("Creation").Column) = Me.TBCreation.Text 'partie du code que je ne trouve pas à faire Cells(LnumL, dercol+1.column) = Me.TBDateJour.Text 'à la lecture Me.TBCode_Client.Text = Cells(kelligne, Range("Code_Client").Column) Me.TBCreation.Text = Cells(kelligne, Range("Creation").Column) 'partie du code que je n'arrive pas à faire Me.TBDateDerVis.Text = Cells(kelligne, DerCol.Column) J'espère avoir été assez compréhensible dans ma requête. D'avance merci. Seb.
Bonjour Merci pour les réponses, je vais travailler dessus, je tiens au courant des résultats Seb