Bonjour,
Je tente d'envoyer une plage de cellule qui s'affiche dans le corps du mail avec ce code:
Sub envoiPlageCellules_Excel()
ActiveSheet.Range("A1:k10").Select ' la plage de cellules à envoyer
'ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
.Introduction = "essai envoi"
.Item.To = "...........@sfr.fr"
.Item.Subject = Range("s2")
.Item.Send
End With
Range("A1").Select
End Sub
Le résultat est que : ca ferme le fichier excel et ca l'ouvre à nouveau, de plus
ca me bloque outlook qui me dit qu'un autre programme utilise outlook
Je ne comprend pas trop le pourquoi mais je suis sur que vous avez une idée de la raison
Bonjour Patrick,
OK tout simple compris donc Cells(1) première cellule à laquelle on peut certainement appliquer un Offset... je vais de ce pas tester tout ça.
Mille fois merci à vous deux, mais on devrait se revoir rapidement car j'ai un problème de date qui lorsqu'elle passe d'un Userform à une cellule se transforme comme par magie (10/02/2020 devient 02/10/2020 !).
Je suis d'accord, c'est tellement écrit en dépit du bon sens (je ne suis pourtant pas un pro VBA mais là ça dépasse tout ce que je pouvais imaginer...) que ça me ferait modifier trop de choses dans les différentes Sub/Fonctions sans compter les contrôles dans les TextBox_Change. Ce sera la prochaine, étape, je pare au plus pressé pour que ça fonctionne et je reverrai tout par la suite.
Je vais essayer de tout forcer dans un format dd/mm/yyyy et voir ce que ça donne.
non non et non robert
tu n'injecte pas une date d'un textebox a une cellule par son texte ou le formatage de son texte
tu peux y arriver par plusieurs chemin cellule=cdate(textbox1.value)
cellule=datevalue(textbox1.value)'permet la traduction des mois en lettre (si bien orthographiés)
et si tu veux avant tu formate la cellule avant !! injection ; meme d'un autre format avec : cellule.numberformat="dd-mm-yyyy"
ou le format que tu veux
pour info tu le saura for the next
quand la date s'inverse dans la cellule c'est que tu a injecté le texte de la date et non une date
voili voilou
démonstration
avec ce code
VB:
Private Sub CommandButton1_Click()
For i = 1 To 3
With Me.Controls("TextBox" & i)
If .Value <> "" And IsDate(.Value) Then Cells(i, 1) = .Value
End With
Next
End Sub
demonstration avec cdate
VB:
Private Sub CommandButton1_Click()
For i = 1 To 3
With Me.Controls("TextBox" & i)
If .Value <> "" And IsDate(.Value) Then Cells(i, 1) = CDate(.Value)
End With
Next
End Sub
et que je t'y reprenne plus hein
allez pour la route avec datevalue
VB:
Private Sub CommandButton1_Click()
For i = 1 To 3
With Me.Controls("TextBox" & i)
If .Value <> "" And IsDate(.Value) Then Cells(i, 1) = DateValue(.Value)
End With
Next
End Sub
Bonjour,
Je suis pour la paix des méninges hein, faut pas vous fâcher à cause de moi
Effectivement, avec un CDate ça semble se passer beaucoup mieux, je vais donc modifier en ce sens.
Merci pour ces réponses et désolé d'avoir provoqué le "pourrissement" de ce post avec des questions qui n'ont rien à voir avec le sujet de base. La prochaine fois j'ouvre une nouvelle discussion.
Excellente journée à vous.
Olivier.
bonjour Olic et Patrick,
pour les méninges je suis relativement épargné!
il y a plusieurs école,moi je préfère le format international car cdate utilise le paramètres régionaux!