Macro excel

Résolu/Fermé
saggigo Messages postés 43 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 10 janvier 2012 - 9 mars 2010 à 10:28
saggigo Messages postés 43 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 10 janvier 2012 - 9 mars 2010 à 14:53
Bonjour à tous, et merci pour toutes les infos qu'on y trouve.

Voilà mon probleme: j'aimerais avoir une macro pour une facture, quand j'entre le nom du client dans une cellule, j'ai dans une autre cellule une réfrence dans ce format (à peut-pres) : NomClientjjmmmaahhmmss
Svp, expliquez moi comment l'introduire parce que VBA je n'y connais rien.
Merci d'avance.
A voir également:

13 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
9 mars 2010 à 10:43
Bonjour,
Deux solutions pour votre souci.
Supposons que vous écriviez le nom en A1 et que vous souhaitiez le résultat en B1.
Par formule :
en B1 écrire : =A1&" "&TEXTE(MAINTENANT();"jj/mm/aaaa hh:mm")

Par macro :
Sur votre feuille de calcul excel tapez ALT+F11 puis Insertion / Module et copiez/collez ce code :

Sub numero_de_serie()
[B1] = [A1] & Now
End Sub

Fermez la fenêtre Visual Basic

Pour l'utiliser, sous la feuille de calcul concernée, tapez ALT+F8, sélectionnez "numero_de_serie" et cliquez sur exécuter.
0
saggigo Messages postés 43 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 10 janvier 2012 1
9 mars 2010 à 11:05
Merci beaucoup pour ta réponse si rapide (exccuse moi si je te tutoi, c'est comme tu veux) mais ça n'a pas resolu mon probleme. je ne voulais pas avoir dans une cellule la date du jour.
mais je voudrais copier dans une seule cellule le nom du client et coller à ce nom la date comme un numero de serie : nomclientjjmmmaahhmmss, voilà le format que je voudrais avoir.
merci d'avance pour votre aide.
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
9 mars 2010 à 11:25
Salut

regardes ces deux codes à placer dans la propriété de la feuille. Si le nom est en A, en tu auras soit avec le premier code la date et l'heure soit avec le deuxième code la valeur de A+ la date et l'heure

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row > 1 Then Target.Offset(0, 1) = Now
End Sub

ou

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row > 1 Then Target.Offset(0, 1) = Target & Now
End Sub
0
saggigo Messages postés 43 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 10 janvier 2012 1
9 mars 2010 à 12:21
Vraiment je sais que j'exagere, mais Mike-31, j'ai pas bien compris comment faire. donc je te donne tous:
Je voudrais ecrire dans la cellule "A4" un nom : saggigo (par exemple), et dans la cellule "E9" trouver ceci:
saggigo090310121953 (saggigojjmmmaahhmmss). biensur je voudrais quand j'enregistre le fichier excel, et que je l'ouvre à une date ulterieur, qu'il ne prenne pas la date de la seconde ouverture. je dis ça marcque j'ai mis la fonction "maintenant()" et j'ai changer de date pour voir, et il m'a mis la date changée. excusez moi encore, et merci à tous. au plaisir de vous lire.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
Modifié par pijaku le 9/03/2010 à 12:51
J'avais bien compris la question et (presque) bien répondu.
Dans un module insère ce code :
Sub numero_facture
[E11] = [A4] & Format(Now, "ddmmyyhhmmss")
End Sub

Et lance la macro par ALT+F8
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
9 mars 2010 à 13:15
Re,
Tu n’exagères pas, tu sais ce que tu veux, et de notre coté nous avons simplement du mal à comprendre.

Tu souhaites en colonne B avoir la valeur que tu saisis en A+ la date et l’heure, c’est bien cela et de façon automatique !

Le code que je t’ai donné, colles le dans la propriété de ta feuille, exemple si l’action doit se dérouler feuille 1
Clic droit sur l’onglet de cette feuille/Visualiser le code, ce qui t’ouvrir la feuille de propriété, colle ce code

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row > 1 Then Target.Offset(0, 1) = Target & Now
End Sub

Si tu saisis Saggigo en A, en B tu auras Saggigo09/03/2010 13:13:53

reste peut être à revoir le format
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
9 mars 2010 à 13:27
Salut Mike,
Ta procédure ne risque t'elle pas de changer le résultat? En fait, comme il souhaite avoir le résultat une fois pour toutes, j'ai zappé le côté "évènementiel"...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
9 mars 2010 à 13:42
Salut Pijaku,

Sur la demande initiale de Saggigo "quand j'entre le nom du client dans une cellule, j'ai dans une autre cellule une réfrence dans ce format (à peut-pres) : NomClientjjmmmaahhmmss"
il confirme ce coté évènementiel sur le post 4
"Je voudrais ecrire dans la cellule "A4" un nom : saggigo (par exemple), et dans la cellule "E9" trouver ceci:
saggigo090310121953"

Enfin pour moi c'est ce que j'ai retenu d'ou mon code reproposé post 6. Il est certain que s'il change un nom déjà saisis en A, en B la date et l'heure changeront. Pour y remédier on peut proposer effectivement le déclenchement avec un bouton
et le code s'appliquerait sur une sélection
ou alors on écrit un code qui demande la sélection de la plage à traiter avec une inputbox

Cordialement
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
saggigo Messages postés 43 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 10 janvier 2012 1
9 mars 2010 à 13:47
Merci pour vos reponses. mais il ya des lacunes:
dans la proposition de pijaku, si je vide la cellule A4 j'aurais juste le jjmmmaahhmmss, et quand j'insere le nom, la cellule E9 ne s'actualise pas.

et pour la proposition de mike31, je ne sais pas pourquoi, mais ça ne donne rien. et si je supprime le contenu de A4, et bien j'ai un bug
0
saggigo Messages postés 43 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 10 janvier 2012 1
9 mars 2010 à 13:54
mike, c exactement ce que je voudrais qui se passe

Salut Pijaku,

Sur la demande initiale de Saggigo "quand j'entre le nom du client dans une cellule, j'ai dans une autre cellule une réfrence dans ce format (à peut-pres) : NomClientjjmmmaahhmmss"
il confirme ce coté évènementiel sur le post 4
"Je voudrais ecrire dans la cellule "A4" un nom : saggigo (par exemple), et dans la cellule "E9" trouver ceci:
saggigo090310121953"


mais le probleme c'est il ne se passe rien. rien ne s'actualise
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
9 mars 2010 à 14:09
Oui, tu veux que cela se fasse de manière automatique (sans que tu ne touches à rien), mais que cela soit de manière définitive, que cela n'évolue pas. Je pense que ma méthode est valable, sauf pour "l'automatisation". Néanmoins, ALT+F8 ne constitue pas non plus un gros effort...
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
9 mars 2010 à 14:09
Re,

Alors dans la propriété feuille colles ce code (Clic droit sur l’onglet de cette feuille/Visualiser le code, ce qui t’ouvrir la feuille de propriété) et tu auras Saggilo090310140921

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row > 1 Then Target.Offset(0, 1) = Target & Format(Now, "ddmmyyhhmmss")
End Sub
0
saggigo Messages postés 43 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 10 janvier 2012 1
9 mars 2010 à 14:13
j'ai fais ce que tu m'a dis; et quand j'ai introduit le nom du client, il ne s'est rien passer, et quand je l'ai supprimer, j'ai eu un bug pour : Target.Offset(0, 1) = Target & Format(Now, "ddmmyyhhmmss"), j'ai meme esseyé sur une autre feuille, et pareil, rien ne se passe.
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
9 mars 2010 à 14:21
Re,

Récupères un exemple avec ce lien, saisis colonne A des noms et en B sera généré automatiquement ce que tu demandes

https://www.cjoint.com/?djot7rxSQ8
0
saggigo Messages postés 43 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 10 janvier 2012 1
9 mars 2010 à 14:35
ça marche , j'ai retrouvé le code dans une cellule cachée "F4" mais moi je la veux en E9 ya pas un moyen de la retrouver en E9 sans faire "=F4"
ausis quand je supprime le nom du client, il y a toujours le bug tu ne saurais pourquoi?
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
9 mars 2010 à 14:40
Re,
traitons un problème à la fois, "le Bug" comme tu dis lorsque tu supprimes le nom veux tu que le nom et la référence s'efface, si oui dans mon exemple propriétés de la feuille1 remplaces le code par ce dernier et tiens nous au courrant

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row > 1 Then
If Target <> "" Then Target.Offset(0, 1) = Target & Format(Now, "ddmmyyhhmmss")
If Target = "" Then Target.Offset(0, 1).ClearContents
End If
End Sub


https://www.cjoint.com/?djoP7ONl3f
0
saggigo Messages postés 43 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 10 janvier 2012 1
9 mars 2010 à 14:53
ça marche nikel. merci beaucoup pour votre aide. et bonne journée. vous etes super
0