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

VBA petit souci avec .Value...

3 réponses
Avatar
Domi
Bonjour à tous,
Je bosse sur une pettite base de donnéees client, j'ai fais cette petite
macro qui me permet d'ajouter un nouveau client avec la date du jour (Col A)
et le n° de client en Col B qui s'incrémante de 1 par rapport à la dernière
valeur du tableau.
Si je met .Value=.Value pour passer le n° de client en dur, le n°
disparait.... ???
Comment y remédier ?

Merci
Domi



Sub Nouveau_Client()
'Tri de la base par n° de client
Application.Goto Reference:="BaseClients"
Selection.Sort Key1:=Range("B6"), Order1:=xlAscending, Header:=xlGuess,
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'Tri de la base par n° de client
Set Données = ActiveSheet.Range("BaseClients")
Set DernièreLigne = Données.Rows(Données.Rows.Count)
Set NouvelleLigne = DernièreLigne.Offset(1, 0)
DernièreLigne.Copy Destination:=NouvelleLigne
On Error Resume Next
NouvelleLigne.SpecialCells(xlCellTypeConstants).ClearContents
ActiveWorkbook.Names.Add Name:="BaseClients", RefersTo:="=" &
Union(Données, NouvelleLigne).Address(, , , True)
'Ajout de la date du jour sur le nouvel enregistrement
NouvelleLigne.Cells(1).Select
Selection.Value = Date
'Création du nouveau n° client inrémenté de 1 (par rapport au dernier
existant)
NouvelleLigne.Cells(2).Select
With ActiveCell
.FormulaR1C1 = "=R[-1]C+1"
.Value = Value
' c'est là que ça coince
End With
NouvelleLigne.Cells(3).Select
End Sub

3 réponses

Avatar
AV
A quel objet s'applique la propriété ?
Donne nous un peu de code.....avant/après

AV

"Domi" a écrit dans le message news:

Bonjour à tous,
Je bosse sur une pettite base de donnéees client, j'ai fais cette petite
macro qui me permet d'ajouter un nouveau client avec la date du jour (Col A)
et le n° de client en Col B qui s'incrémante de 1 par rapport à la dernière
valeur du tableau.
Si je met .Value=.Value pour passer le n° de client en dur, le n°
disparait.... ???
Comment y remédier ?

Merci
Domi



Sub Nouveau_Client()
'Tri de la base par n° de client
Application.Goto Reference:="BaseClients"
Selection.Sort Key1:=Range("B6"), Order1:=xlAscending, Header:=xlGuess,
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
'Tri de la base par n° de client
Set Données = ActiveSheet.Range("BaseClients")
Set DernièreLigne = Données.Rows(Données.Rows.Count)
Set NouvelleLigne = DernièreLigne.Offset(1, 0)
DernièreLigne.Copy Destination:=NouvelleLigne
On Error Resume Next
NouvelleLigne.SpecialCells(xlCellTypeConstants).ClearContents
ActiveWorkbook.Names.Add Name:="BaseClients", RefersTo:="=" &
Union(Données, NouvelleLigne).Address(, , , True)
'Ajout de la date du jour sur le nouvel enregistrement
NouvelleLigne.Cells(1).Select
Selection.Value = Date
'Création du nouveau n° client inrémenté de 1 (par rapport au dernier
existant)
NouvelleLigne.Cells(2).Select
With ActiveCell
.FormulaR1C1 = "=R[-1]C+1"
.Value = Value
' c'est là que ça coince
End With
NouvelleLigne.Cells(3).Select
End Sub




Avatar
Nicolas B.
Salut Domi,

Il y a juste une toute petite erreur de frappe :
Dans ton code :
.Value = Value
Rajoute un point comme ça :
.Value = .Value


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Domi wrote:
Bonjour à tous,
Je bosse sur une pettite base de donnéees client, j'ai fais cette
petite macro qui me permet d'ajouter un nouveau client avec la date
du jour (Col A) et le n° de client en Col B qui s'incrémante de 1 par
rapport à la dernière valeur du tableau.
Si je met .Value=.Value pour passer le n° de client en dur, le n°
disparait.... ???
Comment y remédier ?

Merci
Domi



Sub Nouveau_Client()
'Tri de la base par n° de client
Application.Goto Reference:="BaseClients"
Selection.Sort Key1:=Range("B6"), Order1:=xlAscending,
Header:=xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom 'Tri de la base par n° de client
Set Données = ActiveSheet.Range("BaseClients")
Set DernièreLigne = Données.Rows(Données.Rows.Count)
Set NouvelleLigne = DernièreLigne.Offset(1, 0)
DernièreLigne.Copy Destination:=NouvelleLigne
On Error Resume Next
NouvelleLigne.SpecialCells(xlCellTypeConstants).ClearContents
ActiveWorkbook.Names.Add Name:="BaseClients", RefersTo:="=" &
Union(Données, NouvelleLigne).Address(, , , True)
'Ajout de la date du jour sur le nouvel enregistrement
NouvelleLigne.Cells(1).Select
Selection.Value = Date
'Création du nouveau n° client inrémenté de 1 (par rapport au dernier
existant)
NouvelleLigne.Cells(2).Select
With ActiveCell
.FormulaR1C1 = "=R[-1]C+1"
.Value = Value
' c'est là que ça coince
End With
NouvelleLigne.Cells(3).Select
End Sub


Avatar
Domi
Gros oups....
En te lisant j'ai relu mon bout de code et je viens de voir l'erreur
ça n'est pas .Value = Value mais .Value = .Value qu'il fallait mettre...
Merci ;o)
Domi


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

A quel objet s'applique la propriété ?
Donne nous un peu de code.....avant/après

AV

"Domi" a écrit dans le message news:

Bonjour à tous,
Je bosse sur une pettite base de donnéees client, j'ai fais cette petite
macro qui me permet d'ajouter un nouveau client avec la date du jour
(Col A)


et le n° de client en Col B qui s'incrémante de 1 par rapport à la
dernière


valeur du tableau.
Si je met .Value=.Value pour passer le n° de client en dur, le n°
disparait.... ???
Comment y remédier ?

Merci
Domi



Sub Nouveau_Client()
'Tri de la base par n° de client
Application.Goto Reference:="BaseClients"
Selection.Sort Key1:=Range("B6"), Order1:=xlAscending,
Header:=xlGuess,


OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
'Tri de la base par n° de client
Set Données = ActiveSheet.Range("BaseClients")
Set DernièreLigne = Données.Rows(Données.Rows.Count)
Set NouvelleLigne = DernièreLigne.Offset(1, 0)
DernièreLigne.Copy Destination:=NouvelleLigne
On Error Resume Next
NouvelleLigne.SpecialCells(xlCellTypeConstants).ClearContents
ActiveWorkbook.Names.Add Name:="BaseClients", RefersTo:="=" &
Union(Données, NouvelleLigne).Address(, , , True)
'Ajout de la date du jour sur le nouvel enregistrement
NouvelleLigne.Cells(1).Select
Selection.Value = Date
'Création du nouveau n° client inrémenté de 1 (par rapport au dernier
existant)
NouvelleLigne.Cells(2).Select
With ActiveCell
.FormulaR1C1 = "=R[-1]C+1"
.Value = Value
' c'est là que ça coince
End With
NouvelleLigne.Cells(3).Select
End Sub