OVH Cloud OVH Cloud

calendrier auto.

17 réponses
Avatar
j-claude
bonjour,

Un petit souci qui ne résistera pas à votre sagacité.

soit une cellule ''n '' dont la valeur change chaque jour du mois.

je voudrais dans une autre feuille récupérer cette valeur dans une cellule
adjacente à une autre cellule où apparaîtrait le jour du mois.

par ex feuille 1 (où je modifie chaque jour les données) :
le 02/01/04 n=100

le 03/01/04 n=120

le 04/01/04 n=124

jusqu'au 31/01/04

pourrais récupérer automatiquement dans une feuille 2 :

dans A1 02/01/04 ; B1=100

A2 03/01/04 ; B2=120

A3 04/01/04 ; B3=124

jusqu'au 31/01/04


même si vous ne me dites pas comment, dites moi juste si c'est possible ou
non (macro ou autre).

je vous avoue aussi que si vous me disiez comment..

cordialement,

J-Claude.

7 réponses

1 2
Avatar
j-claude
bonjour Clément,

lorsque j'exécute les macros précédentes de kamel je ne rencontre pas de pb.
avec le renvoi des cellules $G$36 et $G$37 sur la feuille 3.
avec la toute dernière macro, seule la cellule $G$36 est recopiée sur la
feuille 3; le message d'erreur survient à la saisie de la cellule $G$37 .

Je n'ai pourtant rien modifié dans les cellules/feuilles de mon classeur à 3
feuilles?

Une autre piste peut-être?

Cordialement,

J-Cl.

"Clément Marcotte" a écrit dans le message
news:
Bonjour,

Les arguments nommés sont les arguments qui viennent à la suite des "
:= " Il doit y en avoir un qui pointe vers une feuille/cellule
renommées, déplacées ou inexistantes.


"j-claude" a écrit dans le message de
news:4016b09f$0$17121$
ta dernière macro me donne le message d'erreur:
erreur d'exécution 448 argument nommé introuvable.
c'est dans la partie:

Sheets(3).Cells.Find(What:=Target.Offset(-1).Value, _
After:=Sheets(3).Range("A1"), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows,
SearchDirection:=xlNext, _

MatchCase:=True, SearchFormat:úlse).Offset(,
1).FormulaR1C1 = _

Target.FormulaR1C1

inutile de dire que pour la rectif???

dans le dernier message , ce n'était pas de la flatterie
mais juste

un peu d'enthousiasme devant tes connaissances...

salutations
à+
j-cl.


"Kamel" a écrit dans le message news:

Voici ce que tu desirais ... et comme disait le renard au corbeau
"Si


votre
ramage se rapporte à votre plumage ... etc" .... ;-)



Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$G$36" Then
If Sheets(3).Range("A1") <> "" And _
Sheets(3).Range("A2") <> "" Then
With Sheets(3).Range("A1").End(xlDown)
.FormulaR1C1 = Target.FormulaR1C1
.NumberFormat = "m/d/yyyy"
.Offset(1).FormulaR1C1 = "Moyenne = "
.Offset(1, 1).FormulaR1C1 = "=IF(ISBLANK(R[-" & _
.Row & "]C:R[-1]C),0,AVERAGE(R[-" & .Row &
"]C:R[-1]C))"


End With
End If
If Sheets(3).Range("A1") = "" Then
With Sheets(3).Range("A1")
.FormulaR1C1 = Target.FormulaR1C1
.NumberFormat = "m/d/yyyy"
.Offset(1).FormulaR1C1 = "Moyenne = "
.Offset(1, 1).FormulaR1C1 = "=IF(ISBLANK(R[-" & _
.Row & "]C:R[-1]C),0,AVERAGE(R[-" & .Row &
"]C:R[-1]C))"


End With
End If
End If

If Target.Address = "$G$37" Then
Sheets(3).Cells.Find(What:=Target.Offset(-1).Value, _
After:=Sheets(3).Range("A1"), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows,
SearchDirection:=xlNext, _


MatchCase:=True, SearchFormat:úlse).Offset(,
1).FormulaR1C1 = _


Target.FormulaR1C1
End If

End Sub











Avatar
Kamel
Essaye ca :

Aussi si tes feuilles portent un nom mieux vaut mettre ce nom à la place du
numero de la feuille ... par exemple si ta feuille 3 se nomme "trois" ecris
à la place de sheets(3) -> sheets("trois") ... etc

Aussi dans cette dernière macro, quand tu changes la valeur de ton n dans la
feuille 2, on recherche ds la feuille 3 la date associée et on change la
dernière valeur de n ...
Il faut donc entrer premièrement la date ensuite la valeur n associée (pr
éviter deventuels pb mais normalement ca marche car je n'ai pas ce message
d'erreur ...)

Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next

If Target.Address = "$G$36" Then
If Sheets(3).Range("A1") <> "" And _
Sheets(3).Range("A2") <> "" Then
With Sheets(3).Range("A1").End(xlDown)
.FormulaR1C1 = Target.FormulaR1C1
.NumberFormat = "m/d/yyyy"
.Offset(, 1) = ""
.Offset(1).FormulaR1C1 = "Moyenne = "
.Offset(1, 1).FormulaR1C1 = "=IF(ISBLANK(R[-" & _
.Row & "]C:R[-1]C),0,AVERAGE(R[-" & .Row & _
"]C:R[-1]C))"
End With
End If
If Sheets(3).Range("A1") = "" Then
With Sheets(3).Range("A1")
.FormulaR1C1 = Target.FormulaR1C1
.NumberFormat = "m/d/yyyy"
.Offset(, 1) = ""
.Offset(1).FormulaR1C1 = "Moyenne = "
.Offset(1, 1).FormulaR1C1 = "=IF(ISBLANK(R[-" & _
.Row & "]C:R[-1]C),0,AVERAGE(R[-" & .Row & _
"]C:R[-1]C))"
End With
End If
End If

If Target.Address = "$G$37" Then
Sheets(3).Cells.Find(What:=Target.Offset(-1).Value, _
After:=Sheets(3).Range("A1"), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:úlse).Offset(, _
1).FormulaR1C1 = Target.FormulaR1C1
End If

End Sub
Avatar
j-claude
Bonsoir,

Avec ta dernière macro , je n'ai plus le message d'erreur mais le calcul de
la moyenne est invariablement "0" car la valeur entrée en G37 sur la feuille
2 me renvoie tjrs. sur une cellule vide en B1 de la feuille 3.(même en
suivant tes dernires conseils).
Ttes tes macros fonctionnaient sauf les deux dernières càd celles où je dois
retrouver sur la feuille 3 et en B1 la dernière valeur de la journée saisie
en G37 sur la feuille 2...
Mais tu me dis que chez toi ça marche?

S'il te reste un peu de patience?...




"Kamel" a écrit dans le message news:

Essaye ca :

Aussi si tes feuilles portent un nom mieux vaut mettre ce nom à la place
du

numero de la feuille ... par exemple si ta feuille 3 se nomme "trois"
ecris

à la place de sheets(3) -> sheets("trois") ... etc

Aussi dans cette dernière macro, quand tu changes la valeur de ton n dans
la

feuille 2, on recherche ds la feuille 3 la date associée et on change la
dernière valeur de n ...
Il faut donc entrer premièrement la date ensuite la valeur n associée (pr
éviter deventuels pb mais normalement ca marche car je n'ai pas ce message
d'erreur ...)

Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next

If Target.Address = "$G$36" Then
If Sheets(3).Range("A1") <> "" And _
Sheets(3).Range("A2") <> "" Then
With Sheets(3).Range("A1").End(xlDown)
.FormulaR1C1 = Target.FormulaR1C1
.NumberFormat = "m/d/yyyy"
.Offset(, 1) = ""
.Offset(1).FormulaR1C1 = "Moyenne = "
.Offset(1, 1).FormulaR1C1 = "=IF(ISBLANK(R[-" & _
.Row & "]C:R[-1]C),0,AVERAGE(R[-" & .Row & _
"]C:R[-1]C))"
End With
End If
If Sheets(3).Range("A1") = "" Then
With Sheets(3).Range("A1")
.FormulaR1C1 = Target.FormulaR1C1
.NumberFormat = "m/d/yyyy"
.Offset(, 1) = ""
.Offset(1).FormulaR1C1 = "Moyenne = "
.Offset(1, 1).FormulaR1C1 = "=IF(ISBLANK(R[-" & _
.Row & "]C:R[-1]C),0,AVERAGE(R[-" & .Row & _
"]C:R[-1]C))"
End With
End If
End If

If Target.Address = "$G$37" Then
Sheets(3).Cells.Find(What:=Target.Offset(-1).Value, _
After:=Sheets(3).Range("A1"), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:úlse).Offset(, _
1).FormulaR1C1 = Target.FormulaR1C1
End If

End Sub




Avatar
Kamel
je pense qu'il serait plus rapide que tu m'envois ton classeur excel (à
moins que ce ne soient des données confidentielles) pour que je vois d'ou
vient l'erreur car chez moi ca marche ...

envoi la à cette adresse <----- (ajoute les lettres o et a pr
compléter ladresse)

--
Bon courage ...
Kamel
"j-claude" a écrit dans le message de
news:401962c1$0$22319$
Bonsoir,

Avec ta dernière macro , je n'ai plus le message d'erreur mais le calcul
de

la moyenne est invariablement "0" car la valeur entrée en G37 sur la
feuille

2 me renvoie tjrs. sur une cellule vide en B1 de la feuille 3.(même en
suivant tes dernires conseils).
Ttes tes macros fonctionnaient sauf les deux dernières càd celles où je
dois

retrouver sur la feuille 3 et en B1 la dernière valeur de la journée
saisie

en G37 sur la feuille 2...
Mais tu me dis que chez toi ça marche?

S'il te reste un peu de patience?...




"Kamel" a écrit dans le message news:

Essaye ca :

Aussi si tes feuilles portent un nom mieux vaut mettre ce nom à la place
du

numero de la feuille ... par exemple si ta feuille 3 se nomme "trois"
ecris

à la place de sheets(3) -> sheets("trois") ... etc

Aussi dans cette dernière macro, quand tu changes la valeur de ton n
dans


la
feuille 2, on recherche ds la feuille 3 la date associée et on change la
dernière valeur de n ...
Il faut donc entrer premièrement la date ensuite la valeur n associée
(pr


éviter deventuels pb mais normalement ca marche car je n'ai pas ce
message


d'erreur ...)

Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next

If Target.Address = "$G$36" Then
If Sheets(3).Range("A1") <> "" And _
Sheets(3).Range("A2") <> "" Then
With Sheets(3).Range("A1").End(xlDown)
.FormulaR1C1 = Target.FormulaR1C1
.NumberFormat = "m/d/yyyy"
.Offset(, 1) = ""
.Offset(1).FormulaR1C1 = "Moyenne = "
.Offset(1, 1).FormulaR1C1 = "=IF(ISBLANK(R[-" & _
.Row & "]C:R[-1]C),0,AVERAGE(R[-" & .Row & _
"]C:R[-1]C))"
End With
End If
If Sheets(3).Range("A1") = "" Then
With Sheets(3).Range("A1")
.FormulaR1C1 = Target.FormulaR1C1
.NumberFormat = "m/d/yyyy"
.Offset(, 1) = ""
.Offset(1).FormulaR1C1 = "Moyenne = "
.Offset(1, 1).FormulaR1C1 = "=IF(ISBLANK(R[-" & _
.Row & "]C:R[-1]C),0,AVERAGE(R[-" & .Row & _
"]C:R[-1]C))"
End With
End If
End If

If Target.Address = "$G$37" Then
Sheets(3).Cells.Find(What:=Target.Offset(-1).Value, _
After:=Sheets(3).Range("A1"), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:úlse).Offset(, _
1).FormulaR1C1 = Target.FormulaR1C1
End If

End Sub








Avatar
j-claude
bonsoir,

je t'ai bien envoyé un classeur mais j'ai peur qu'il ne te soit jamais
parvenu.
Ds l'adresse , j'ai mis "a" entre k et m ;
puis après l'arobase , "o" entre h et t
"a i" entre m et l.

sincères salutations. j-cl.

"Kamel" a écrit dans le message news:

je pense qu'il serait plus rapide que tu m'envois ton classeur excel (à
moins que ce ne soient des données confidentielles) pour que je vois d'ou
vient l'erreur car chez moi ca marche ...

envoi la à cette adresse <----- (ajoute les lettres o et a
pr

compléter ladresse)

--
Bon courage ...
Kamel
"j-claude" a écrit dans le message de
news:401962c1$0$22319$
Bonsoir,

Avec ta dernière macro , je n'ai plus le message d'erreur mais le calcul
de

la moyenne est invariablement "0" car la valeur entrée en G37 sur la
feuille

2 me renvoie tjrs. sur une cellule vide en B1 de la feuille 3.(même en
suivant tes dernires conseils).
Ttes tes macros fonctionnaient sauf les deux dernières càd celles où je
dois

retrouver sur la feuille 3 et en B1 la dernière valeur de la journée
saisie

en G37 sur la feuille 2...
Mais tu me dis que chez toi ça marche?

S'il te reste un peu de patience?...




"Kamel" a écrit dans le message news:

Essaye ca :

Aussi si tes feuilles portent un nom mieux vaut mettre ce nom à la
place



du
numero de la feuille ... par exemple si ta feuille 3 se nomme "trois"
ecris

à la place de sheets(3) -> sheets("trois") ... etc

Aussi dans cette dernière macro, quand tu changes la valeur de ton n
dans


la
feuille 2, on recherche ds la feuille 3 la date associée et on change
la



dernière valeur de n ...
Il faut donc entrer premièrement la date ensuite la valeur n associée
(pr


éviter deventuels pb mais normalement ca marche car je n'ai pas ce
message


d'erreur ...)

Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next

If Target.Address = "$G$36" Then
If Sheets(3).Range("A1") <> "" And _
Sheets(3).Range("A2") <> "" Then
With Sheets(3).Range("A1").End(xlDown)
.FormulaR1C1 = Target.FormulaR1C1
.NumberFormat = "m/d/yyyy"
.Offset(, 1) = ""
.Offset(1).FormulaR1C1 = "Moyenne = "
.Offset(1, 1).FormulaR1C1 = "=IF(ISBLANK(R[-" & _
.Row & "]C:R[-1]C),0,AVERAGE(R[-" & .Row & _
"]C:R[-1]C))"
End With
End If
If Sheets(3).Range("A1") = "" Then
With Sheets(3).Range("A1")
.FormulaR1C1 = Target.FormulaR1C1
.NumberFormat = "m/d/yyyy"
.Offset(, 1) = ""
.Offset(1).FormulaR1C1 = "Moyenne = "
.Offset(1, 1).FormulaR1C1 = "=IF(ISBLANK(R[-" & _
.Row & "]C:R[-1]C),0,AVERAGE(R[-" & .Row & _
"]C:R[-1]C))"
End With
End If
End If

If Target.Address = "$G$37" Then
Sheets(3).Cells.Find(What:=Target.Offset(-1).Value, _
After:=Sheets(3).Range("A1"), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:úlse).Offset(, _
1).FormulaR1C1 = Target.FormulaR1C1
End If

End Sub












Avatar
Kamel
il ne fallait pas ajouter a à kamel ... :o)

envoile à celle ci pour qu'il n'y a pas d'erreur :

k_mel777 @ hotmail . com

sans les espaces .... et c bien un underscor ...

--
Bon courage ...
Kamel
"j-claude" a écrit dans le message de
news:401bf8c7$0$11231$
bonsoir,

je t'ai bien envoyé un classeur mais j'ai peur qu'il ne te soit jamais
parvenu.
Ds l'adresse , j'ai mis "a" entre k et m ;
puis après l'arobase , "o" entre h et t
"a i" entre m et l.

sincères salutations. j-cl.

"Kamel" a écrit dans le message news:

je pense qu'il serait plus rapide que tu m'envois ton classeur excel (à
moins que ce ne soient des données confidentielles) pour que je vois
d'ou


vient l'erreur car chez moi ca marche ...

envoi la à cette adresse <----- (ajoute les lettres o et
a


pr
compléter ladresse)

--
Bon courage ...
Kamel
"j-claude" a écrit dans le message de
news:401962c1$0$22319$
Bonsoir,

Avec ta dernière macro , je n'ai plus le message d'erreur mais le
calcul



de
la moyenne est invariablement "0" car la valeur entrée en G37 sur la
feuille

2 me renvoie tjrs. sur une cellule vide en B1 de la feuille 3.(même en
suivant tes dernires conseils).
Ttes tes macros fonctionnaient sauf les deux dernières càd celles où
je



dois
retrouver sur la feuille 3 et en B1 la dernière valeur de la journée
saisie

en G37 sur la feuille 2...
Mais tu me dis que chez toi ça marche?

S'il te reste un peu de patience?...




"Kamel" a écrit dans le message news:

Essaye ca :

Aussi si tes feuilles portent un nom mieux vaut mettre ce nom à la
place



du
numero de la feuille ... par exemple si ta feuille 3 se nomme
"trois"




ecris
à la place de sheets(3) -> sheets("trois") ... etc

Aussi dans cette dernière macro, quand tu changes la valeur de ton n
dans


la
feuille 2, on recherche ds la feuille 3 la date associée et on
change




la
dernière valeur de n ...
Il faut donc entrer premièrement la date ensuite la valeur n
associée




(pr
éviter deventuels pb mais normalement ca marche car je n'ai pas ce
message


d'erreur ...)

Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next

If Target.Address = "$G$36" Then
If Sheets(3).Range("A1") <> "" And _
Sheets(3).Range("A2") <> "" Then
With Sheets(3).Range("A1").End(xlDown)
.FormulaR1C1 = Target.FormulaR1C1
.NumberFormat = "m/d/yyyy"
.Offset(, 1) = ""
.Offset(1).FormulaR1C1 = "Moyenne = "
.Offset(1, 1).FormulaR1C1 = "=IF(ISBLANK(R[-" & _
.Row & "]C:R[-1]C),0,AVERAGE(R[-" & .Row & _
"]C:R[-1]C))"
End With
End If
If Sheets(3).Range("A1") = "" Then
With Sheets(3).Range("A1")
.FormulaR1C1 = Target.FormulaR1C1
.NumberFormat = "m/d/yyyy"
.Offset(, 1) = ""
.Offset(1).FormulaR1C1 = "Moyenne = "
.Offset(1, 1).FormulaR1C1 = "=IF(ISBLANK(R[-" & _
.Row & "]C:R[-1]C),0,AVERAGE(R[-" & .Row & _
"]C:R[-1]C))"
End With
End If
End If

If Target.Address = "$G$37" Then
Sheets(3).Cells.Find(What:=Target.Offset(-1).Value, _
After:=Sheets(3).Range("A1"), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:úlse).Offset(, _
1).FormulaR1C1 = Target.FormulaR1C1
End If

End Sub
















Avatar
j-claude
bonsoir kamel
juste une question avant de nous quitter (il le faut bien car les échecs
mènent parfois à ça)

reçois tu mes messages sur ta bal perso??

salut j-cl.

"j-claude" a écrit dans le message news:
4016b09f$0$17121$
ta dernière macro me donne le message d'erreur:
erreur d'exécution 448 argument nommé introuvable.
c'est dans la partie:

Sheets(3).Cells.Find(What:=Target.Offset(-1).Value, _
After:=Sheets(3).Range("A1"), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:úlse).Offset(, 1).FormulaR1C1 = _
Target.FormulaR1C1

inutile de dire que pour la rectif???

dans le dernier message , ce n'était pas de la flatterie mais
juste

un peu d'enthousiasme devant tes connaissances...

salutations
à+
j-cl.


"Kamel" a écrit dans le message news:

Voici ce que tu desirais ... et comme disait le renard au corbeau "Si
votre

ramage se rapporte à votre plumage ... etc" .... ;-)



Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$G$36" Then
If Sheets(3).Range("A1") <> "" And _
Sheets(3).Range("A2") <> "" Then
With Sheets(3).Range("A1").End(xlDown)
.FormulaR1C1 = Target.FormulaR1C1
.NumberFormat = "m/d/yyyy"
.Offset(1).FormulaR1C1 = "Moyenne = "
.Offset(1, 1).FormulaR1C1 = "=IF(ISBLANK(R[-" & _
.Row & "]C:R[-1]C),0,AVERAGE(R[-" & .Row & "]C:R[-1]C))"
End With
End If
If Sheets(3).Range("A1") = "" Then
With Sheets(3).Range("A1")
.FormulaR1C1 = Target.FormulaR1C1
.NumberFormat = "m/d/yyyy"
.Offset(1).FormulaR1C1 = "Moyenne = "
.Offset(1, 1).FormulaR1C1 = "=IF(ISBLANK(R[-" & _
.Row & "]C:R[-1]C),0,AVERAGE(R[-" & .Row & "]C:R[-1]C))"
End With
End If
End If

If Target.Address = "$G$37" Then
Sheets(3).Cells.Find(What:=Target.Offset(-1).Value, _
After:=Sheets(3).Range("A1"), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext,
_


MatchCase:=True, SearchFormat:úlse).Offset(, 1).FormulaR1C1 _
Target.FormulaR1C1
End If

End Sub








1 2