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 Sub

Bon 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 Sub

Bon 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 Sub

Bonne 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

Rechercher des sujets similaires à "anomalie suite macro"