Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Excel Automatiser raccourcis

bacardi972, le mercredi 16 juillet 2008 à 12:08:55
Bonjour!

Bon, j'ai crée un worksheet permettant de suivre la gestion des stocks de mon entreprise.

J'ai donc créé des tableaux dont l'onglet porte le nom de l'objet. Ce sont toujours les mêmes tableaux du reste.

Je veux que dès qu'une cellule de la colonne B est remplie, que la colonne C indique la date (fixée)automatiquement. Idem pour les colonnes D et E qui suivent la même logique.

Cause: flux entrants et flux sortants.

J'ai écrit le code suivant pour la feuille "Coca" par exemple:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then If Not (IsEmpty(Target.Value)) Then Range("C" & Target.Row).Value = Worksheets("Coca").Cells(17, 1).Value Else Range("C" & Target.Row).ClearContents
If Target.Column = 4 Then If Not (IsEmpty(Target.Value)) Then Range("E" & Target.Row).Value = Worksheets("Coca").Cells(17, 1).Value Else Range("E" & Target.Row).ClearContents

End Sub

Ok. Vous avez vu que la formule récupère date affichée en A17.
Or, c'est pour une gestion de stock, donc je ne veux pas que la date se base sur l'heure système: je la veux fixe.

J'ai donc une case sur ma page "Général" (première page), dans laquelle j'exécute le raccourci suivant:
"Ctrl+;" puis un espace, puis "Ctrl+:" pour avoir ça "16/07/2008 12:17" en C5

Mais c'est assez lourd.

Est-ce que je peux avoir une ligne VBA qui me permette d'exécuter ces touches de raccourci automatiquement dans la case C5 au lancement de Excel?

Je vous remercie et reste à votre disposition
Répondre à bacardi972  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
lermite222, le mercredi 16 juillet 2008 à 13:01:56
Bonjour,
Sais pas si j'ai bien compris, mettre la date et l'heure à l'ouverture du classeur ?

Private Sub Workbook_Open()
    Sheets("Général").Cells(5,3).Value = Now
End Sub
Tu dit...
A+ L'expérience instruit plus sûrement que le conseil. (André Gide)  
Répondre à lermite222

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
bacardi972, le mercredi 16 juillet 2008 à 14:08:35
Bonjour!

Merci pour votre rapidité.
La formule donnée me donne la date et l'heure du moment. Mais elle évolue avec le temps. Elle n'est pas fixée à la différence de la manip "Ctrl+;" par exemple.

C'est une information capitale dans le problème car c'est pour réaliser un historique. et j'ouvre le classeur tous les jours pour suivre la consommation des produits.

Il faut donc que quand j'ouvre mon classeur, le moment d'ouverture (date heure) soit affiché dans une cellule (C5 en particulier), mais que cette automatisation ne soit pas le résultat d'une formule =now(); =aujourdhui(); =maintenant() et j'en passe.
Ces formules impliquent en effet des données variables et volatiles. Il me faut une date fixée qui ne changera pas quand j'ouvrirai le classeur le lendemain par exemple.

C'est la dernière chose qui me manque à mon classeur.

Je reste à votre disposition!
Répondre à bacardi972

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
lermite222, le mercredi 16 juillet 2008 à 16:50:01
J'ai toujours pas compris...
Que veux-tu comme date dans cette cellule et quand doit-elle être initialisée.
Et avec quoi ?
L'expérience instruit plus sûrement que le conseil. (André G­ide)  
Répondre à lermite222

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
bacardi972, le mercredi 16 juillet 2008 à 17:53:46
Re!

La formule que vous m'avez donnée = NOW me permettrait de faire ce que je veux si sa valeur ne bougeait pas.

exemple: aujourd'hui, nous sommes le 16. Avec votre formule, il affichera 16/07/08 admettons.
Demain 17, 17/07/08.

Ok.
Or, mon classeur fait intervenir des tableaux. Ce qui se passe: quand j'entre une valeur dans la colonne B, il m'affiche la date du jour de saisie dans la colonne C (sur la même ligne), sans que je n'aie rien à faire.

Or, la formule que j'ai va piocher la date du jour dans la cellule A17 de chaque feuille.
Si j'utilise le =now, les dates que j'ai entrées la veille se mettent à la date du jour.

Moi je ne veux pas qu'elles bougent. C'est pour ça que je voulais éviter de mettre une formule de type =maintenant()... à cause de leur volatilité.

Donc, ce que je demande c'est s'il est possible d'écrire en langage VBA la suite de manipulations suivante:
"Ctrl+;"(donne le jour), puis un "espace"(pour faire joli), puis "ctrl+:" (donne l'heure), et ce, à l'ouverture du Worksheet (donc les minutes ne bougeront pas). C'est donc un =maintenant() qui restera toujours fixe.

Je fais marcher le tout en le faisant manuellement en ce moment. Mais je veux automatiser ce processus dès l'ouverture du classeur.

C'est possible ? (faire une date fixe générée à chaque démarrage, dans toujours la même cellule de la même feuille).


Je reste à votre dispositon,
Répondre à bacardi972

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
lermite222, le mercredi 16 juillet 2008 à 18:03:12
Si ru veux pas que cette date soit inirialisée à chaque ouverture du classeur amis que la 1èere fois oui, alors ...
Je doit dire que malgré tes explications j'ai pas bien compris.


Private Sub Workbook_Open()
    If Sheets("Général").Cells(5,3).Value ="" then
         Sheets("Général").Cells(5,3).Value = Now
    End if
End Sub

Mais PAS COMPRIS !!!!! L'expérience instruit plus sûrement que le conseil. (André Gide)  
Répondre à lermite222

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Bacardi972, le mercredi 16 juillet 2008 à 18:38:32
lol

Je mets en ligne la partie du programme qui nous intéresse daccord?
Vous pourrez trifouiller par vous même et éventuellement corriger..

On fait comme ça?

P.S: il faut que je le mette sur cjoint c'est correct? je vais me débrouiller de toute façon
Répondre à Bacardi972

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
eriiic, le mercredi 16 juillet 2008 à 20:13:04
Il faut donc que quand j'ouvre mon classeur, le moment d'ouverture (date heure) soit affiché dans une cellule (C5 en particulier)...
et
Il me faut une date fixée qui ne changera pas quand j'ouvrirai le classeur le lendemain par exemple.

Faudrait savoir....
En fait tu veux que lorsque tu ouvres le classeur la date se mette dans une cellule, sauf si tu regardes l'écran méchamment. C'est ça ?

Autre chose, il y a, il me semble confusion :
si dans une cellule tu mets =aujourdhui() ou qcq chose comme ça à la prochaine ouverture ça se mettra à jour effectivement.
Si c'est par macro que tu utilises =now() ça ne se mettra à jour QUE SI C'EST VOULU.

eric
Répondre à eriiic

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Bacardi972, le mercredi 16 juillet 2008 à 21:21:26
Bonsoir,

Eric: tu insinues que la machine a une conscience? Tu as pris un raccourcis en écrivant que je me contredisais.

Imaginons la situation. Tu as un tableau vide avec 2 colonnes (A et B).

Tu veux que: si tu rentres une valeur dans une cellule de la colonne A, la cellule juxtaposée en B affiche la date de saisie de la colonne A.
Il ne faut donc pas que le lendemain, toutes ces dates déjà saisies aient changé.

J'ai essayé plusieurs choses mais comme je débute, j'ai encore des lacunes.

Quelles lignes de macro tu écris dans ce cas?

Merci par avance; je reste à votre disposition.
Répondre à Bacardi972

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
eriiic, le mercredi 16 juillet 2008 à 21:44:12
Une question pour éclairer ma lanterne :
Pourquoi mettre la date ET l'heure si tu désires que cette valeur reste fixée à l'heure d'ouverture du fichier ?

Ton code a l'air correct même si je ne l'aurais pas écrit ainsi.
Si tu ajoutes le bout donné par lermite au post 1 ça sera complet.
Contrairement à ce que tu dis, ce n'est pas parce qu'il a utilisé now que la valeur va changer dans la cellule toutes les secondes. Il ne sera rafraichi qu'à chaque ouverture de fichier comme tu l'as demandé (c'est la différence entre une formule et du code vba que j'essayais de t'expliquer).

Teste l'ensemble et demande ensuite si il faut rajouter qcq chose ou s'il y a une erreur.

eric
Répondre à eriiic

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
lermite222, le jeudi 17 juillet 2008 à 07:11:27
Eureka, je crois que j'ai compris
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static AncCol As String, Col As Integer, Lig As Long
    If AncCol <> "" Then
        Col = Range(AncCol).Column
        Lig = Range(AncCol).Row
        If Cells(Lig, Col) <> éé Then
            If Col = 1 And Cells(Lig, Col + 1) = "" Then
                Cells(Lig, Col + 1) = Now
            End If
        End If
    End If
    AncCol = Target.Address
End Sub


Quand tu met une donnée dans la colonne A la date s'inscrit automatiquement danq la colonne B
et ne changera plus.
A+ L'expérience instruit plus sûrement que le conseil. (André Gide)  
Répondre à lermite222

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 bacardi972, le jeudi 17 juillet 2008 à 10:01:48
Super!!!!

Merci lermite, tu me sors de mon isolement intellectuel.

Merci à toi aussi Eric!

C'est précisément ce que je voulais. Génial !
Je n'ai plus qu'à l'adapter à mes colonnes.

Merci beaucoup, je peux enfin boucler le projet..

A bientôt
Répondre à bacardi972
Exemple de fichier excel automatisé (Résolu) Bonjour, j aimerai bien avoir des exemples de fichiers excel automatisé , car j aimerai bien apprendre a en faire merci d avance www.commentcamarche.net/forum/affich-5394665-exemple-de-fichier-excel-automatise
Supprimer. raccourci clavier office 2007 (Résolu) Bonjour, j'ai installé la suite microsoft office pro 2007, par défaut certains raccourcis clavier lance les programmes d'Office. Par exemple, la touche F3 lancer Excel automatiquement (idem pour les autres touches) Mais problème lorsque que... www.commentcamarche.net/forum/affich-4689831-supprimer-raccourci-clavier-office-2007
Historisation des données Excel (Résolu) Bonjour, j'ai une question similaire à celle posée dans le sujet "http://wwww.commentcamarche.net/forum/affich 5847197 copie de colonnes excel automatiques" mais comme la solution n'y est pas indiquée, je me permets de revenir tout en... www.commentcamarche.net/forum/affich-6866765-historisation-des-donnees-excel
[Excel] Colorer des cellules sur conditionsIl existe dans Excel des fonctions très pratiques mais peu connues et peu utilisées. Exemple : vous souhaitez qu'une cellule se colore automatiquement en rouge (ou autre mise en forme de police, de bordure, de trame) selon une condition : un... www.commentcamarche.net/faq/sujet-3975-excel-colorer-des-cellules-sur-conditions
Raccourcis clavier de WindowsRaccourcis clavier sous Windows ou comment éviter d'utiliser la souris ! Raccourcis spécifiques à Windows Pour la gestion de fichiers mais aussi pour tous les logiciels Pour les logiciels de traitement de texte Pour Word Pour Excel Pour... www.commentcamarche.net/faq/sujet-333-raccourcis-clavier-de-windows
Extractions de données dans un fichiers excel (Résolu)Bonsoir!!!!! je dois extraire des données à partir d'une base de données php mysql et de les mettre sous tableurs , sous fichiers excel automatiquement de façon à ce ke lorsque je clique sur le boutton extraire, un fichier excel s'affichera... www.commentcamarche.net/forum/affich-8196217-extractions-de-donnees-dans-un-fichiers-excel
Insérer une feuille sou excel automatiquement (Résolu)Bonjour,je voudrai savoir s'il existe un programme qui dès que l'on insère une ligne d'une feuille dans une plage de donnée excel, il creer une feuille avec les valeurs qu'on lui donne dans la ligne à inserer. PAR EXEMPLE:... www.commentcamarche.net/forum/affich-4186541-inserer-une-feuille-sou-excel-automatiquement
Copie de colonnes Excel automatiques (Résolu)Bonjour, J'ai 2 feuilles Excel sur un même classeur ; la A et la B. Sur ma feuille A se met à jour toutes les 15 minutes un tableau (grâce à la fonctionnalité "données externes"). Ce tableau est composé de 6 colonnes. Ce que je souhaiterais... www.commentcamarche.net/forum/affich-5847197-copie-de-colonnes-excel-automatiques