Problème #NOM? après macro copier coller formules

Bonjour à tous,

J'ai repris le travail de BousTico et réutilisé la méthode expliquée ci-dessous pour éviter les liaisons dans une nouvelle macro.

Cela fonctionne bien, sauf que dans les cases d'arrivée, il est écrit : #NOM?, alors que la formule est bien présente dans la case et sans erreur. Exemple de formule : =SOMME(altaresumen!BB125:CY125)+SOMME(mediaresumen!BB124:CY124)+SOMME(bajaresumen!BB124:CY124)

où altaresumen, mediaresumen et bajaresumen sont des feuillets de chaque fichier plante, et les formules dont il est question sont dans un feuillet totalresumen.

J'ai l'impression que c'est à cause de la fonction SOMME que l'opération n'est pas effectuée.

J'ai essayé de faire marcher les formules avec une macro F2+entrée, avec une macro .Calculate, mais rien n'y fait.

Auriez-vous une solution pour moi ? Je commence à désespérer...

Merci beaucoup !

Messagepar BousTico » 6 Octobre 2015, 17:23

Bonjour à tous,

Je travaille sur une base de données de 420 fichiers "P" & indice & ".xlsx" structurellement identiques qui contiennent 7 feuilles chacun. Ces feuilles portent le même nom dans chaque fichier. Suite à une erreur dans un code, je dois récupérer pour l'ensemble de ces fichiers la feuille "totalresumen" depuis une ancienne sauvegarde de la base de donnée. Les sauvegardes se nomment "Sauvegarde P" & indice & ".xlsx"

Cela consiste

1) à supprimer l'actuelle feuille "totalresumen" du fichier "P" & indice & ".xlsx"

2) à copier la feuille "totalresumen" du fichier "Sauvegarde P" & indice & ".xlsx"

3) à la coller dans le fichier "P" & indice & ".xlsx"

Mon problème est le suivant : dans tous les fichiers, la feuille "totalresumen" contient des formules, qui la lient aux autres pages du fichier. J'ai réussi à copier-coller avec les formules mais je me retrouve dans le fichier "P" & indice & ".xlsx" avec des formules qui appellent les feuilles du fichier "Sauvegarde P" & indice & ".xlsx", or j'aimerais que les formules de la feuille "totalresumen" du fichier "P" & indice & ".xlsx" appellent les autres feuilles de ce même fichier...

En d'autres termes, je souhaite copier-coller une page avec les formules mais sans les liaisons entre fichiers.

J'espère avoir réussi à me faire comprendre ! Merci d'avance !

PS : de nombreux sujets traitent du copier coller de feuille, mais je n'ai pas encore trouvé de solution pour ce problème spécifique.

PPS : j'ai récemment débuté sur VBA, et je tiens à vous remercier pour l'aide que j'ai trouvé sur ce forum jusqu'à aujourd'hui

PPPS : les fichiers sont trop volumineux pour que je puisse en joindre un...

aucun avatar BousTico

Nouveau venu

Nouveau venu

Messages : 2

Inscription : 6 Octobre 2015

Version Excel : 2013 FR

aucun avatar

Messagepar moumou » 6 Octobre 2015, 17:37 Sujet résolu

Petite astuce : tu fais un contrôle + f dans ta feuille et tu remplaces tous les "=" par "N="

Tu transfères ensuite ta nouvelle feuille (qui ne calcule plus rien) dans ton autre classeur.

Et tu fais la manip inverse! (remplacer les "N=" par "=").

Bonsoir,

Tu devrais mettre le code de ta macro. Si tu tu as cette erreur, c'est que la fonction n'est pas reconnue. Si la réaffectation est faite par VBA, elle devrait normalement utiliser la propriété Formula de l'objet Range. Cette propriété reconnait SUM mais pas SOMME, mais la fonction apparaîtra SOMME si la langue est FR dans les options régionales et Excel. Il faudrait sans doute alors utiliser la propriété FormulaLocal qui permet d'affecter des formules dans la langue utilisateur.

Cordialement.

Bonjour,

Désolée, c'est mieux comme ça ?

 Dim Sortie As Workbook
    Dim FeuilleOrigine As Worksheet, FeuilleDestination As Worksheet

    'Référence à la feuille origine des données à copier : MacroIcumu
    monFichiersortie = "C:\Users\Camille\Desktop\MacroIcumu.xlsx"

    'On ouvre le classeur MacroIcumu et la feuille à copier : totalresumen
    Set Sortie = Workbooks.Open(monFichiersortie)
    Set FeuilleOrigine = Sortie.Sheets("totalresumen")

    'On ouvre les fichiers plante et la feuilles où effectuer la copie : totalresumen
     Set Entree = Workbooks.Open(monFichiersource)
     Set FeuilleDestination = Entree.Sheets("totalresumen")
     'On copie les cellules de la feuille MacroIcumu vers les fichiers plante

     FeuilleOrigine.Range("A40:R140").Copy

     With FeuilleDestination.Range("A40:R140")
         .PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
         .PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False

      FeuilleDestination.Activate

'
Cells.Replace What:="N=", Replacement:="=", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

Et ci-joint une image tirée du fichier MacroIcumu (le fichier Excel étant trop lourd) dont je veux copier les formules et la mise en forme pour les cellules A40:R140 de la feuille totalresumen pour mettre dans chaque fichier plante - feuille totalresumen aussi. J'ai utilisé l'astuce de mettre des N= au lieu des = dans les formules car sinon le lien avec le fichier initial était sauvegardé dans chaque cellule.

Merci beaucoup !

macroicumuimage

Ouf ! Il faudrait apprendre à écrire le code pour qu'il soit lisible, et utiliser la balise code dans le post.

La majeure partie du temps passé sur les problème VBA pour recherche les causes de dysfonctionnements l'est sur la lecture parce que le code est présenté de façon défectueuse !

Bonjour,

Merci de la remarque, j'ai corrigé mon post (voir ci-dessous)

Tu l'as tronquée !

Mais bon j'ai fait une première épuration...

Il manque de toute façon quelque chose : on a bien après copie le remplacement des "N=" par "=", mais on n'a nulle part l'insertion de ces N devant les =

Il faut bien que ce soit fait quelque part, si on les ôte ensuite ! Ce bout de code manque.


Et les variables déclarées p, j, k, w, page et nouveaufichier ne sont pas utilisées dans le code fourni !

Sans doute en rapport avec le code qui manque.

Oui désolée !!!

En fait c'est BONNN j'ai trouvé la solution !!!!!

Effectivement c'était seulement un problème avec mon 1er fichier avec les formules à copier : j'avais des =SOMME et le collage spécial utilisé ensuite dans la macro ne fonctionnait pas alors j'ai tout remplacé par =SUM et ça marche !!!!

Merci de m'avoir lue

Bonne continuation !

Rechercher des sujets similaires à "probleme nom macro copier coller formules"