Problème colonnage avec macro

Le
Mathieu
Bonjour à tous,

J'ai un souci avec un fichier créé par un collègue ayant quitté l'e=
ntreprise. Celui-ci contient les macros suivantes :

==
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 27/01/2011
'
' Touche de raccourci du clavier: Ctrl+m
'
Selection.Copy
Range("K8").Select
ActiveSheet.Paste
End Sub
Sub Macro3()
'
' Macro3 Macro
' Macro enregistrée le 27/01/2011
'
' Touche de raccourci du clavier: Ctrl+p
'
Range("K9").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-1]C[-6]<>"""",IF(R[-1]C[-2]<>0,""retour dans le service""=
,IF(R[-1]C[-6]-TODAY()>9,""délai OK"",IF(R[-1]C[-6]-TODAY()>0,""délai u=
rgent"",""délai expiré""))),IF(R[-1]C[-2]<>0,""retour dans le service""=
,""pas de délai""))"
Range("K10").Select
End Sub


Mon problème vient de la seconde macro. Initialement le Range("K9") éta=
it ("J9"), changé par mes soins.
J'ai été contraint d'ajouter une colonne et de ce fait elle n'est plus =
exacte. Ma nouvelle colonne est en H. Quand la macro s'exécute elle retou=
rne ceci :

=SI(F492<>"";SI(I492<>0;"retour dans le service";SI(F492-AUJOURDHUI()>9;"=
délai OK";SI(F492-AUJOURDHUI()>0;"délai urgent";"délai expiré")));S=
I(I492<>0;"retour dans le service";"pas de délai"))

Or, pour être exacte il faudrait que la colonne F indiquée dans cette m=
acro soit la colonne E et donc être :

=SI(E492<>"";SI(I492<>0;"retour dans le service";SI(E492-AUJOURDHUI()>9;"=
délai OK";SI(E492-AUJOURDHUI()>0;"délai urgent";"délai expiré")));S=
I(I492<>0;"retour dans le service";"pas de délai"))

J'ai changé plusieurs fois les valeurs C[-6] ou C[-2] mais le résultat =
final est toujours le même et donc tronqué. Mon résultat s'affiche bi=
en en K mais au lieu de prendre en considération que C[-valeur] devrait =
être la colonne E et non la F.

Pourriez-vous m'aider s'il vous plait ?
Par avance je vous remercie de vos bons conseils,
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacky
Le #24908692
Bonsoir,
Sans plus d'infos, je dirai...
'----------
Macro 1
Selection.Copy [K8]
'------------
Macro 3
Range("j9").Formula = "=IF(E8<>"""",IF(I8<>0,""retour dans le service"",IF(E8-TODAY()>9,""délai
OK"",IF(E8-TODAY()>0,""délai urgent"",""délai expiré""))),IF(I8<>0,""retour dans le service"",""pas de
délai""))"
'------------
--
Salutations
JJ


"Mathieu"
Bonjour à tous,

J'ai un souci avec un fichier créé par un collègue ayant quitté l'entreprise. Celui-ci contient les macros
suivantes :

=================== Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 27/01/2011
'
' Touche de raccourci du clavier: Ctrl+m
'
Selection.Copy
Range("K8").Select
ActiveSheet.Paste
End Sub
Sub Macro3()
'
' Macro3 Macro
' Macro enregistrée le 27/01/2011
'
' Touche de raccourci du clavier: Ctrl+p
'
Range("K9").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-1]C[-6]<>"""",IF(R[-1]C[-2]<>0,""retour dans le service"",IF(R[-1]C[-6]-TODAY()>9,""délai
OK"",IF(R[-1]C[-6]-TODAY()>0,""délai urgent"",""délai expiré""))),IF(R[-1]C[-2]<>0,""retour dans le
service"",""pas de délai""))"
Range("K10").Select
End Sub
=================
Mon problème vient de la seconde macro. Initialement le Range("K9") était ("J9"), changé par mes soins.
J'ai été contraint d'ajouter une colonne et de ce fait elle n'est plus exacte. Ma nouvelle colonne est en H.
Quand la macro s'exécute elle retourne ceci :

=SI(F492<>"";SI(I492<>0;"retour dans le service";SI(F492-AUJOURDHUI()>9;"délai
OK";SI(F492-AUJOURDHUI()>0;"délai urgent";"délai expiré")));SI(I492<>0;"retour dans le service";"pas de
délai"))

Or, pour être exacte il faudrait que la colonne F indiquée dans cette macro soit la colonne E et donc être :

=SI(E492<>"";SI(I492<>0;"retour dans le service";SI(E492-AUJOURDHUI()>9;"délai
OK";SI(E492-AUJOURDHUI()>0;"délai urgent";"délai expiré")));SI(I492<>0;"retour dans le service";"pas de
délai"))

J'ai changé plusieurs fois les valeurs C[-6] ou C[-2] mais le résultat final est toujours le même et donc
tronqué. Mon résultat s'affiche bien en K mais au lieu de prendre en considération que C[-valeur] devrait être
la colonne E et non la F.

Pourriez-vous m'aider s'il vous plait ?
Par avance je vous remercie de vos bons conseils,
Jacky
Le #24908732
Humm!!
Range("K9").Formula =.....
Et non pas
Range("j9").Formula =....
--
Salutations
JJ


"Jacky"
Bonsoir,
Sans plus d'infos, je dirai...
'----------
Macro 1
Selection.Copy [K8]
'------------
Macro 3
Range("j9").Formula = "=IF(E8<>"""",IF(I8<>0,""retour dans le service"",IF(E8-TODAY()>9,""délai
OK"",IF(E8-TODAY()>0,""délai urgent"",""délai expiré""))),IF(I8<>0,""retour dans le service"",""pas de
délai""))"
'------------
--
Salutations
JJ


"Mathieu"
Bonjour à tous,

J'ai un souci avec un fichier créé par un collègue ayant quitté l'entreprise. Celui-ci contient les macros
suivantes :

=================== > Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 27/01/2011
'
' Touche de raccourci du clavier: Ctrl+m
'
Selection.Copy
Range("K8").Select
ActiveSheet.Paste
End Sub
Sub Macro3()
'
' Macro3 Macro
' Macro enregistrée le 27/01/2011
'
' Touche de raccourci du clavier: Ctrl+p
'
Range("K9").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-1]C[-6]<>"""",IF(R[-1]C[-2]<>0,""retour dans le service"",IF(R[-1]C[-6]-TODAY()>9,""délai
OK"",IF(R[-1]C[-6]-TODAY()>0,""délai urgent"",""délai expiré""))),IF(R[-1]C[-2]<>0,""retour dans le
service"",""pas de délai""))"
Range("K10").Select
End Sub
================= >
Mon problème vient de la seconde macro. Initialement le Range("K9") était ("J9"), changé par mes soins.
J'ai été contraint d'ajouter une colonne et de ce fait elle n'est plus exacte. Ma nouvelle colonne est en H.
Quand la macro s'exécute elle retourne ceci :

=SI(F492<>"";SI(I492<>0;"retour dans le service";SI(F492-AUJOURDHUI()>9;"délai
OK";SI(F492-AUJOURDHUI()>0;"délai urgent";"délai expiré")));SI(I492<>0;"retour dans le service";"pas de
délai"))

Or, pour être exacte il faudrait que la colonne F indiquée dans cette macro soit la colonne E et donc être :

=SI(E492<>"";SI(I492<>0;"retour dans le service";SI(E492-AUJOURDHUI()>9;"délai
OK";SI(E492-AUJOURDHUI()>0;"délai urgent";"délai expiré")));SI(I492<>0;"retour dans le service";"pas de
délai"))

J'ai changé plusieurs fois les valeurs C[-6] ou C[-2] mais le résultat final est toujours le même et donc
tronqué. Mon résultat s'affiche bien en K mais au lieu de prendre en considération que C[-valeur] devrait
être la colonne E et non la F.

Pourriez-vous m'aider s'il vous plait ?
Par avance je vous remercie de vos bons conseils,

Mathieu
Le #24908802
Bonjour Jacky,

Je ne comprends pas très bien car en fait l'insertion de nouvelles lignes est faite automatiquement via un formulaire d'où le fait que l'ancien co llègue utilisée les références R et C pour définir l'emplacement des colonnes/lignes à prendre en considération pour la condition SI.


Merci Jacky
Mathieu
Le #24908872
J'ai essayé ci-dessous de mettre cela plus clairement :

Voici mes colonnes :

A, B, C, D : sans importance pas besoin de les détailler ici
E : Date limite
F : Date départ
G : Date visa
H : Date retour
I : sans importance
J : affiche le résultat de la macro

donc mon truc est de faire que :

si E = quelque chose et que H = quelque chose alors J = "retour dans le service"
si E = une date de plus de 8 jours à compter d'aujourd'hui et que H = rien alors J = "délai ok", sinon J = "délai urgent"
si E = une date équivalente à aujourd'hui ou dépassé alors J = "délai expiré
si E = rien et que H = rien alors J = "délai ok"
Mathieu
Le #24908862
Voici mes colonnes :

A, B, C, D : sans importance pas besoin de les détailler ici
E : Date limite
F : Date départ
G : Date visa
H : sans importance
I : Date retour
J : sans importance
K : affiche le résultat de la macro

donc mon truc est de faire que :

si E = quelque chose et que I = quelque chose alors K = "retour dans le service"
si E = une date de plus de 8 jours à compter d'aujourd'hui et que I = rien alors K = "délai ok", sinon K = "délai urgent"
si E = une date équivalente à aujourd'hui ou dépassé alors K = "délai expiré
si E = rien et que I = rien alors K = "délai ok"
Jacky
Le #24908852
RE...
Je ne comprends pas très bien car en fait l'insertion de nouvelles lignes est faite automatiquement




Dans l'exemple la destination et une cellule fixe
Range("K9").Select




Ou alors la macro postée n'est pas compète
Je n'ai pas vérifier les conditions de la formule, juste modifié les adresses de cellules
Cela ne donne pas le résultat escompté ??

--
Salutations
JJ


"Mathieu"
Bonjour Jacky,

Je ne comprends pas très bien car en fait l'insertion de nouvelles lignes est faite automatiquement via un
formulaire d'où le fait que l'ancien collègue utilisée les références R et C pour définir l'emplacement des
colonnes/lignes à prendre en considération pour la condition SI.


Merci Jacky
Mathieu
Le #24908942
Jacky,

mon souci est de trouver le bon chiffre à mettre après C dans ma macro pour pointer la colonne E et non la F.

La macro exécutait donne cette formule :
=SI(F498<>"";SI(I498<>0;"retour dans le service";SI(F498-AUJOURDHUI()>9;" délai OK";SI(F498-AUJOURDHUI()>0;"délai urgent";"délai expiré")));S I(I498<>0;"retour dans le service";"pas de délai"))

moi je cherche à ce qu'elle donne ceci :
=SI(E498<>"";SI(I498<>0;"retour dans le service";SI(E498-AUJOURDHUI()>9;" délai OK";SI(E498-AUJOURDHUI()>0;"délai urgent";"délai expiré")));S I(I498<>0;"retour dans le service";"pas de délai"))

Tu constates que la seule différence c'est que la macro se trompe de colo nne (F au lieu de E) pour faire ses conditions SI et cette tromperie vient du chiffre indiqué dans la macro après les 3 C[-6] :

"=IF(R[-1]C[-6]<>"""",IF(R[-1]C[-2]<>0,""retour dans le service"",IF(R[- 1]C[-6]-TODAY()>9,""délai OK"",IF(R[-1]C[-6]-TODAY()>0,""délai urgent"" ,""délai expiré""))),IF(R[-1]C[-2]<>0,""retour dans le service"",""pas de délai""))"

donc je cherche la bonne valeur à mettre au lieu de C[-6], j'ai essayé C[-5] et C[-7] et la macro continues de prendre malgré cela la mauvaise c olonne
Jacky
Le #24909032
donc je cherche la bonne valeur à mettre au lieu de C[-6],


Ecrit de cette façon, cela dépendra de l'adresse de la cellule active!
--
Salutations
JJ


"Mathieu"
Jacky,

mon souci est de trouver le bon chiffre à mettre après C dans ma macro pour pointer la colonne E et non la F.

La macro exécutait donne cette formule :
=SI(F498<>"";SI(I498<>0;"retour dans le service";SI(F498-AUJOURDHUI()>9;"délai
OK";SI(F498-AUJOURDHUI()>0;"délai urgent";"délai expiré")));SI(I498<>0;"retour dans le service";"pas de
délai"))

moi je cherche à ce qu'elle donne ceci :
=SI(E498<>"";SI(I498<>0;"retour dans le service";SI(E498-AUJOURDHUI()>9;"délai
OK";SI(E498-AUJOURDHUI()>0;"délai urgent";"délai expiré")));SI(I498<>0;"retour dans le service";"pas de
délai"))

Tu constates que la seule différence c'est que la macro se trompe de colonne (F au lieu de E) pour faire ses
conditions SI et cette tromperie vient du chiffre indiqué dans la macro après les 3 C[-6] :

"=IF(R[-1]C[-6]<>"""",IF(R[-1]C[-2]<>0,""retour dans le service"",IF(R[-1]C[-6]-TODAY()>9,""délai
OK"",IF(R[-1]C[-6]-TODAY()>0,""délai urgent"",""délai expiré""))),IF(R[-1]C[-2]<>0,""retour dans le
service"",""pas de délai""))"

donc je cherche la bonne valeur à mettre au lieu de C[-6], j'ai essayé C[-5] et C[-7] et la macro continues de
prendre malgré cela la mauvaise colonne
Mathieu
Le #24909072
Merci Jacky,

Je ne comprends pas mais comment faire pour que cette cellule active corres ponde strictement à la colonne E (sachant que mon table comporte les colo nnes allant de A à K et que le résultat de la macro est affiché en K) ?

Merci.
Jacky
Le #24909132
Re...
Je ne comprends pas ......




Moi non plus!
http://cjoint.com/?BJBsV7pUGBV

--
Salutations
JJ


"Mathieu"
Merci Jacky,

Je ne comprends pas mais comment faire pour que cette cellule active corresponde strictement à la colonne E
(sachant que mon table comporte les colonnes allant de A à K et que le résultat de la macro est affiché en K)
?

Merci.
Publicité
Poster une réponse
Anonyme