Anomalie suite Macro
Bonsoir,
Dans mon premier fichier « FormulesSimplifiées_V4.xlsm », j’ai 2 onglets « Feuil1 » & « Feuil2 ».
L’onglet « Feuil2 » reprend des données présentes sous « Feuil1 ».
Toujours sur ma « Feuil2 », j’ai placé un bouton auquel j’ai affecté une macro qui permet d’envoyer à travers une messagerie un fichier Excel qui ne contient que cette feuille.
Le fichier réceptionné, je l’ai renommé en « FormulesSimplifiées_V4 - apres envoi mail.xlsx » et je l’associe aussi à ce post.
Ma question :
Pourquoi est-ce que dans ce fichier, la moitié des données sont récupérées ?
En effet, dans le tableau vert, toutes les données sont là mais dans le tableau bleu, les données sont remplacées par #VALEUR !
Merci
Bonsoir,
Comme tu envoies des formules, il est normal que les cellules ne retrouvent pas leurs petits...
Il faudrait que tu fasses un Copier/Collage Spécial (valeurs) avant de poster ton fichier...
Comme ceci, par exemple :
Sub EnvoiPage()
'Nombre de destinataires à adapter
Dim Destinataires(3) As String, Sujet As String
Dim AccuseReception As Boolean
'Nom du ou des destinataires à modifier
Destinataires(3) = "xxxxxxxxx@xxxx.com"
'Sujet à adapter
Sujet = "Statistiques Sebastien - Concerne le mois de Février 2014 (avec Graphique Nb Appels / Agences)"
AccuseReception = True
'Nom de la Feuille à renseigner
ThisWorkbook.Sheets("Feuil2").Copy
With Range("B2:M19")
.Copy
.PasteSpecial Paste:=xlPasteValues
End With
With Range("B25:M42")
.Copy
.PasteSpecial Paste:=xlPasteValues
End With
ActiveWorkbook.SendMail Destinataires, Sujet, AccuseReception
ActiveWorkbook.Close False
End SubBon courage
Bonsoir Cousihub et merci pour ta réponse.
J'ai bien compris que Excel ne retrouvait pas ces petits mais comment expliques-tu qu'une partie des données soient retrouvées mais pas les autres ?
Je vais tester ta macro.
Merci
Re-,
- comment expliques-tu qu'une partie des données soient retrouvées mais pas les autres ?
sur ton PC, peut-être seulement......!
Et aussi, que les fonctions Decaler et Equiv ne fonctionnent pas avec des fichiers fermés?
Peut-être (voire, sûrement....)
Bonne soirée
Bonjour,
Encore 2 questions en rapport avec la macro :
1 - Le collage spécial se fait dans le fichier initial ou dans le fichier final ? Je pose la question car dans mon fichier de départ, j'ai perdu toutes mes formules.
2 - Si je veux rajouter une section pour le copier/coller spécial [valeurs) dans la macro, j'ai juste à dupliquer la partie suivante en modifiant les lignes et colonnes ?
With Range("B25:M42")
.Copy
.PasteSpecial Paste:=xlPasteValues
End With
Merci
Bonjour,
On va faire plus simple, sans copier/coller...
En affectant juste les valeurs.
Et on supprime également le bouton qui a également été copié, mais qui ne sert plus à rien...
Pour ta question 2, tu peux dupliquer autant que tu veux les lignes ***.Value = ****.Value
Le code :
Sub EnvoiPage()
'Nombre de destinataires à adapter
Dim Destinataires(3) As String, Sujet As String
Dim AccuseReception As Boolean
'Nom du ou des destinataires à modifier
Destinataires(3) = "xxxxxxxxx@xxxx.com"
'Sujet à adapter
Sujet = "Statistiques Sebastien - Concerne le mois de Février 2014 (avec Graphique Nb Appels / Agences)"
AccuseReception = True
'Nom de la Feuille à renseigner
ThisWorkbook.Sheets("Feuil2").Copy
With ActiveWorkbook
.Sheets(1).Range("B2:M19").Value = .Sheets(1).Range("B2:M19").Value
.Sheets(1).Range("B25:M42").Value = .Sheets(1).Range("B25:M42").Value
.Sheets(1).Shapes("Button 1").Delete
.SendMail Destinataires, Sujet, AccuseReception
.Close False
End With
End SubBon courage
Edit :
On peut optimiser le code, afin de déterminer automatiquement les zones à copier/coller (valeurs)
Sub EnvoiPage()
'Nombre de destinataires à adapter
Dim Destinataires(3) As String, Sujet As String
Dim AccuseReception As Boolean
Dim Plg As Range
'Nom du ou des destinataires à modifier
Destinataires(3) = "xxxxxxxxx@xxxx.com"
'Sujet à adapter
Sujet = "Statistiques Sebastien - Concerne le mois de Février 2014 (avec Graphique Nb Appels / Agences)"
AccuseReception = True
'Nom de la Feuille à renseigner
ThisWorkbook.Sheets("Feuil2").Copy
With ActiveWorkbook
Set Plg = .Sheets(1).Cells.SpecialCells(xlCellTypeFormulas, 23)
Plg.Value = Plg.Value
.Sheets(1).Shapes("Button 1").Delete
.SendMail Destinataires, Sujet, AccuseReception
.Close False
End With
End SubBonne journée
Cousinhub
Un grand merci pour cette aide.
J'ai testé et c'est exactement ce que je voulais pour mon fichier professionnelle.
Encore merci