[Résolu] Insérer Nom+Date dans une zone de texte par macro

WaïRa

XLDnaute Nouveau
Bonjour à tous,

Nouveau née dans le monde du VBA (2jours^^), je tiens d'abord à remercier toute la team et les membres de Excel-DownLoads, car je me suis déjà bien inspiré de votre travail! Merci!!!

Voici mon problème: je souhaiterai créer une macro me permettant d'insérer, après une saisie de texte, à la ligne un nom+date(jj/mm) dans une zone de texte de mon onglet actif excel, et je ne sais pas du tout comment faire ca!

Si un bienfaiteur veut bien me venir en aide, je lui en serai grandement reconnaissant.

Merci,

Cdlt,

WaïRa
 

Staple1600

XLDnaute Barbatruc
Bonjour à tous

Waira (bienvenue sur le forum)
Relire svp le point 5 de la charte ;)
Car la macro ci-dessous fait peu ou prou ce dont tu causes
VB:
Sub a()
Shapes("ZoneTexte 1").TextFrame2.TextRange = "Nom " & Format(Date, "jj/mm")
End Sub
Mais avec ce que t'invites à faire le point 5), ce serait tout de suite plus simple, non ? ;)

Précisions: Je parle du point 5) dans le section [Demandeur] de la charte.
 
Dernière édition:

WaïRa

XLDnaute Nouveau
Bonjour Staple1600,

et merci pour ta réponse rapide.

Je ne comprends pas: "le point 5 de la charte"?
"5 – Les inscriptions à des fins commerciales ne sont pas autorisées. Cela concerne également les liens dans les signatures. Si vous avez des doutes vous pouvez demander à l’administrateur du site son autorisation." ?

Ou tu parles du fait de joindre un fichier?

Si tu peux développer, je suis preneur :)

Cdlt,

WaïRa
 

JCGL

XLDnaute Barbatruc
Bonjour à tous,
Salut l'Agrafe,

Je plussoies au propos de Staple1600 :

[Demandeur]
5 – La possibilité de joindre des fichiers est donnée sur ce forum. Ne pas hésiter à utiliser cette fonction, tout en veillant que les données soient bidons et donc qu’aucune donnée confidentielle, nominative ne soit dans le fichier.

A++ l'ami
A+ à tous
 

WaïRa

XLDnaute Nouveau
ahah^^
J'ai relu ton premier message :p
Oui! Joindre un fichier!!! Ca aurait été directement plus simple, il est vrai ^^
Disons que je tente de me dépatouiller tout seul pour apprendre un peu le fonctionnement de ces fameuses macro! Donc, je n'attendais pas une réponse toute chaude et faite sur mesure; je vais essayer de suite ce code, et si ca marche pas, je reviens joindre mon fichier en question.
Et si ca marche, je reviendrai quand même ;)
Merci à toi! :)

EDIT: Merci pour cette confirmation JCGL :)
 

Staple1600

XLDnaute Barbatruc
Bonjour JCGL ;)

Waira
Ma macro risque fort de ne point marcher
Si ta zone de texte n'est pas une zone de texte mais un Label(1) ou une Etiquette(2)
1) Contrôle ActiveX
2) Contrôle de la barre formulaire.


Ça ne marchera pas non plus si son nom n'est pas ZoneTexte 1

D’où la nécessité d'avoir une fichier exemple fourni par le demandeur pour tester nos code VBA.
 

WaïRa

XLDnaute Nouveau
Re,

Effectivement, ca ne marche pas: ca me remplace ce que j'ai tapé par le texte saisi dans la macro (résultat auxquels j'étais déjà parvenu jusqu'ici)
Je te joins le fichier .xslm
Sur ce fichier, j'ai écrit en rouge les instructions dans la zone concernée; mais cette zone est une étiquette rattachée à une zone texte. Si c'est gênant, je peux très bien la remplacer par une zone texte (en notant bien qu'il n'y a aucun intérêt à que ca ne soit pas une zone texte ;) )
Merci en tout cas!
Cdlt,
WaïRa
 

Pièces jointes

  • Excel-Downloads.xlsm
    142.2 KB · Affichages: 50

Staple1600

XLDnaute Barbatruc
Re

Ton bidule ce n'est pas une zone de texte mais un commentaire.
Testes ce bout de code sur une feuille vierge en guise de test inspiratif
VB:
Sub a()
With ActiveCell
.ClearComments: .AddComment: .Comment.Visible = True
.Comment.Text Text:=Format(Date, "dd/mm") & vbCrLf & Application.UserName
End With
 
Dernière édition:

WaïRa

XLDnaute Nouveau
Oui, c'est un commentaire/annotation à une zone de texte: aucun intérêt! à part créer des difficultés supplémentaires, je l'ai viré dans l'excel ci-joint

J'ai testé ton code: super pour signer dater et créer un commentaire assigné à une cellule! Mais dans mon cas, je pense que remplacer l'annotation/commentaire par une zone texte sera bien plus simple! (je me base sur les travaux d'un autre, et tout n'était pas des plus logiques!)

En tout cas merci pour ta rapidité et ton aide!

N'ayant rien dans le bide depuis ce matin et commançant à avoir la tête qui tourne, je m'absente pour solutionner ce problème (plus accessible pour moi ;) )

A toute à l'heure, merci
 

Pièces jointes

  • Excel-Downloads.xlsm
    141.7 KB · Affichages: 45

Staple1600

XLDnaute Barbatruc
Re

Pendant que tu grailles, je ponds du VBA ;)
Donc voici (à mettre dans le code de la feuille)
NB: conserve le précédent texte mis en commentaire
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Comm$, CommMAJ$
If Target.Address = "$K$18" Then
With ActiveCell
On Error Resume Next
    Comm = .Comment.Text
    .ClearComments
    CommMAJ = CommMAJ & Comm & vbCrLf & InputBox("Saisir commentaires Suivi, svp.") & vbCrLf & Application.UserName & Format(Date, "\:dd/mm")
    .AddComment
    .Comment.Visible = True
    .Comment.Shape.Height = 250
    .Comment.Shape.Width = 250
    .Comment.Text Text:=CommMAJ
End With
End If
End Sub
 

WaïRa

XLDnaute Nouveau
Joli ponte ^^
Par contre, je n'arrive pas à la faire fonctionner: j'ai une erreur d'excecution '424': objet requis dans la ligne "If Target.Address = "$K$18" Then" ...

Avant de venir demander de l'aide auprès des grands maîtres du VBA, j'avais tenter une macro du style:
ActiveWorkbook.ActiveSheet.Shapes(1).TextFrame.Characters.Text = "Nom" & Format(Date, "jj/mm")

Mais même problème qu'avec le code que tu m'avais proposé en premier lieu, ca m'efface le texte que j'avais saisi avant!
Et vu le nombre de zone texte que j'ai dans ma feuille, j'avais du mal à identifier Shapes()

Je vais fouiner un peu plus...
 

Staple1600

XLDnaute Barbatruc
Re

Déjà si tu fouinais dans mes propositions précédentes, tu aurais pu tester ceci :rolleyes:
VB:
Sub b()
Dim Comm$, CommMAJ$
Comm = ActiveSheet.Shapes(1).TextFrame2.TextRange
CommMAJ = CommMAJ & Comm & vbCrLf & InputBox("Saisir commentaires suivi") & vbCrLf & Application.UserName & Format(Date, "\:dd/mm")
ActiveSheet.Shapes(1).TextFrame2.TextRange = CommMAJ
End Sub
PS: test positif sur mon PC.
Et cette fois-ci le code est dans un module standard.
 
Dernière édition:

WaïRa

XLDnaute Nouveau
Merci bien! Testé sur feuille vierge: ca enregistre bien le texte saisi dans l'inbox+Nom&Date et le colle au fur et à mesure des saisi: super!!!

Par contre, étant un gros newbies :( j'ai pas réussi à faire marcher la macro avec ma feuille (malgré quelques tentatives futiles). La destination ne doit pas être bonne (j'ai tenté de modifier Shapes d'y mettre le nom de la zone texte, mais rien y fait, je ne sais pas où sont écrites les données saisies dans l'inputBox :'( )

Oui, je sais: je suis nul et j'y connais rien de chez rien... mais j'apprendrais ^^

J'espère que je ne t'embête pas trop! en tout cas merci!

EDIT: désolé pour ma lenteur de réponse, je viens d'essuyer un gros plantage excel + pertes d'infos
 

Staple1600

XLDnaute Barbatruc
Re

Ta zone de texte tu l'as inséré à partir de quel menu dans Excel?
Encore une fois, joindre un fichier le plus proche du réel (mais allégé et anonymisé)

EDITION ::eek::oops::rolleyes:
Lances cette macro sur ton fichier exemple et tu comprendras pourquoi tu ne voyais rien dans ta textbox...
VB:
Sub c()
ActiveSheet.Shapes(1).Visible = True
MsgBox ActiveSheet.Shapes(1).TopLeftCell.Address
MsgBox ActiveSheet.Shapes(1).Name
ActiveSheet.Shapes(1).Select
ActiveSheet.Shapes(1).Width = 250
ActiveSheet.Shapes(1).Height = 250
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 176
Messages
2 085 967
Membres
103 069
dernier inscrit
jujulop