J'utilise la code de Ron De Bruin afinn de copier une feuille excel et de l=
'ins=C3=A9rer dans un message Outlook. Ca fonctionne =C3=A0 merveille.
Dans l'ex=C3=A9cution du code, excel cr=C3=A9e un fichier temporaire et l'i=
nformation y est inscrite en valeur (PasteValue).
Cependant, j'aurais besoin de copier la rang=C3=A9e 34 (ou du moins la plag=
e "B34:J34") du fichier original dans le fichier temporaire, parce que cett=
e plage contient un hyperlien. UNe fois l'hyperlien copi=C3=A9 et coll=C3=
=A9, il se transpose dans Outlook sans probl=C3=A8me.
Mon probl=C3=A8me est qu'=C3=A0 chaque fois que l'usager utilise la fonctio=
n durant la journ=C3=A9e, le fichier temporaire change de nom....
Alors comment faire pour dire =C3=A0 excel dans le cours d'ex=C3=A9cution d=
u code
=20
Windows("REEE (Carol).xlsm").Activate
Rows("34:34").Select
Selection.Copy
Windows("sheet (peu importe le chiffre").Activate
Rows("34:34").Select
ActiveSheet.Paste
J'insère l'hyperlien dans la cellule et cela semble marcher....
S'il y a de quoi, je reviens demain
Denys
MichD
Bonjour,
Au besoin, tu peux essayer ceci :
'---------------------------------------- Sub TEST() Dim Wk As Workbook Dim Source As Range Dim Dest As Range
'Avec le classeur actuel où tu places la macro With ThisWorkbook .Activate 'Avec une feuille donnée. Si c'est avec la feuille active 'On peut utiliser la ligne de code suivante à la place ' With .ActiveSheet ' OU With .Worksheets("SonNOm") 'Détermine la plage à copier Set Source = .Rows("34:34") End With End With
'Crée un nouveau classeur avec seulement une feuille Set Wk = Workbooks.Add(-4167) 'Détermine où les données seront copiées Set Dest = Wk.Sheets(1).Range("A1")
Source.Copy Dest
'La suite, tu peux envoyer le classeur Wk par mail...
'Et pour se débarasser du fichier sans sauvegarde Wk.Close False End Sub '----------------------------------------
Bonjour,
Au besoin, tu peux essayer ceci :
'----------------------------------------
Sub TEST()
Dim Wk As Workbook
Dim Source As Range
Dim Dest As Range
'Avec le classeur actuel où tu places la macro
With ThisWorkbook
.Activate
'Avec une feuille donnée. Si c'est avec la feuille active
'On peut utiliser la ligne de code suivante à la place
' With .ActiveSheet ' OU
With .Worksheets("SonNOm")
'Détermine la plage à copier
Set Source = .Rows("34:34")
End With
End With
'Crée un nouveau classeur avec seulement une feuille
Set Wk = Workbooks.Add(-4167)
'Détermine où les données seront copiées
Set Dest = Wk.Sheets(1).Range("A1")
Source.Copy Dest
'La suite, tu peux envoyer le classeur Wk par mail...
'Et pour se débarasser du fichier sans sauvegarde
Wk.Close False
End Sub
'----------------------------------------
'---------------------------------------- Sub TEST() Dim Wk As Workbook Dim Source As Range Dim Dest As Range
'Avec le classeur actuel où tu places la macro With ThisWorkbook .Activate 'Avec une feuille donnée. Si c'est avec la feuille active 'On peut utiliser la ligne de code suivante à la place ' With .ActiveSheet ' OU With .Worksheets("SonNOm") 'Détermine la plage à copier Set Source = .Rows("34:34") End With End With
'Crée un nouveau classeur avec seulement une feuille Set Wk = Workbooks.Add(-4167) 'Détermine où les données seront copiées Set Dest = Wk.Sheets(1).Range("A1")
Source.Copy Dest
'La suite, tu peux envoyer le classeur Wk par mail...
'Et pour se débarasser du fichier sans sauvegarde Wk.Close False End Sub '----------------------------------------