Erreur 1004 sur une formule excel traduite en VBA

Anamiya

XLDnaute Nouveau
Bonjour à tous,

Je me lance depuis peu dans les macros afin d'alléger certaines tâches répétitives et permettre à de néophytes d'excel de le faire aussi.

Cependant, je suis confronté aux problèmes des fonctions excel traduites en VBA. Pour cela j'utilise l'enregistreur (éviter les erreurs bêtes de traduction ou d'oublis de guillemet), mais avec la formule suivante (oui je sais elle est longue), elle marche durant l'enregistrement mais lorsque j'exécute la macro, j'ai un message "erreur 1004 pendant l'exécution : Défini par l'erreur d'application ou de l'objet".
Quelqu'un aurait une idée de la cause et/ou comment je pourrais faire pour le résoudre?

Range("A2").Select
ActiveCell.FormulaR1C1 = _
"=TEXT(CONCATENATE(SUBSTITUTE(RC[8],"" "",""""),""-"",IF(RC[15]="""",IF(COUNTIF(RC[6],""*XS =*"")=1,""XS"",IF(COUNTIF(RC[6],""*S =*"")=1,""S"",IF(COUNTIF(RC[6],""*M =*"")=1,""M"",IF(COUNTIF(RC[6],""*L =*"")=1,""L"",IF(COUNTIF(RC[6],""*XL =*"")=1,""XL"",IF(COUNTIF(RC[6],""*One size*"")=1,""L"",IF(COUNTIF(RC[6],""*5-6*"")=1,""XS"",IF(COUNTIF(RC[6],""*7-8*"")=1,""S"",IF(RC[6],""9-10*"")=1,""M"",IF(COUNTIF(RC[6],""*11-12*"")=1,""L"",IF(COUNTIF(RC[6],""*13-14*"")=1,""XL"",IF(COUNTIF(RC[6],""*15-16*"")=1,""XXL"",""L"")))))))))))),RC[15])),0)"
Range("A2").Select

Merci d'avance
 

Modeste

XLDnaute Barbatruc
Re : Erreur 1004 sur une formule excel traduite en VBA

Bonjour Anamiya et bienvenue parmi nous,


Quelqu'un aurait une idée de la cause
Ah ben comme ça, ... non :p



comment je pourrais faire pour le résoudre?
Une piste que j'explorerais, si j'étais toi: joindre à ton prochain message un bout de fichier (pas besoin du fichier complet, un extrait bien représentatif suffira) dont tu t'assureras qu'il ne contient pas de données sensibles ni confidentielles.
Tu complètes cette illustration avec des explications détaillées sur ce que tu voudrais faire et -cerise sur le gâteau- un exemple des résultats que tu voudrais obtenir ... ça pourrait aider un peu :D
 

Anamiya

XLDnaute Nouveau
Re : Erreur 1004 sur une formule excel traduite en VBA

Bonjour Modeste, :)

Le but de cette formule est de transformer le format non homogénéisé des références sous la forme "référence(sans_espace)-taille".
Le problème étant que les tailles ne sont pas toujours précisées dans la bonne colonne et il faut aller les repêcher dans la description.

Cela me sert de référence de base pour utiliser la rechercheV sur une autre feuille.

Le problème est que la formule fonctionne (cf onglet résultat), mais avec l'enregistrement en macro puis le lancement de la macro j'obtiens une erreur d'exécution 1004.

En pièce-jointe un exemple léger avec quelques différents cas de figure.
 

Pièces jointes

  • Exemple ref-size.xlsm
    19.9 KB · Affichages: 48

Modeste

XLDnaute Barbatruc
Re : Erreur 1004 sur une formule excel traduite en VBA

Re-bonjour Anamiya,

Tu va sans doute dire qu'on pose beaucoup de questions et qu'on apporte peu de réponses, mais voilà ...
Si la fonction donne le résultat attendu, pourquoi vouloir l'inscrire par ... macro, dans les cellules de la colonne A?

D'autre part, dans ta colonne "Tekstopfactuur", le texte en question commence-t-il toujours par "Name 1 -"? Ou y a-t-il systématiquement 7 caractères avant le premier tiret?

Ne serait-il pas plus simple d'établir un petit tableau de concordance avec, en colonne 1, le texte à rechercher et en colonne 2 celui par lequel il faut remplacer? D'autant que certains cas ne sont pas prévus dans ta formule: "7-6 mois", par exemple! ... il y en a peut-être d'autres encore, qui ne figurent pas dans tes quelques exemples :confused:
 

Anamiya

XLDnaute Nouveau
Re : Erreur 1004 sur une formule excel traduite en VBA

J'avais essayer d'anticiper la question, la formule est au milieu d'une macro, je n'ai mis que la partie qui posait problème. Le but étant que la personne qui utilisera n'aura qu'à importer les données dans le tableau et aura les résultats voulu prêt à être importés sur une nouvelle page.

Ensuite, les données de la colonne Tekstopfactuur ne fait jamais la même longueur mais est sous le même format à savoir "nom du produit" (longueur variable) - "taille" - "marque du produit".


Enfin, j'ai fait les exemples un peu à la va vite, mais tous les produits avec une taille donnée en mois ont un taille normal suivi de = et de la taille en mois, donc ce sont toutes les conditions en *XS =*... qui les prennent en charge.

Le plus simple aurait été d'homogénéiser les tailles sur le même format que le fournisseur, mais cela ne fait pas partie des options.

Et pour les questions, il vaut mieux comprendre pour proposer une solution.
J'ai pensé à un nombre trop grand d'arguments, mais j'ai des doutes là-dessus.:confused:
 

pierrejean

XLDnaute Barbatruc
Re : Erreur 1004 sur une formule excel traduite en VBA

Bonjour Anamiya

Salut Modeste

Je te propose la stratégie suivante :
Si la taille existe dans la colonne VR_ART_Maat la mettre après la colonne ArtikelNummerBijLeverancier

Sinon rechercher la taille dans un tableau d’équivalence à créer du genre
XS 1-3mois
XXL 15-16 ans
L One size
....
Peux-tu créer un tableau de ce genre ?
 

Modeste

XLDnaute Barbatruc
Re : Erreur 1004 sur une formule excel traduite en VBA

Bonsoir Anamiya,
Salut pierrejean :),
Salut Si... :),

Ce n'est pas que je sois têtu, mais je me suis un peu "pris au jeu" et puis, comme pierrejean était d'accord avec le petit tableau de concordance/correspondance (in het blad3 :)) j'avais envie de poursuivre

Sans rien ôter donc à la proposition de Si..., une seule formule (un peu plus courte que celle de départ) qui extrait
- soit ce qui figure entre le premier " - " et le premier " = "
- soit ce qui figure entre les deux " - "

... sauf s'il y a déjà une taille en P2, puis "colle" le tout derrière le n° d'article du fournisseur

Il restera à déterminer s'il y a encore des cas non prévus

Bonne soirée,
 

Pièces jointes

  • Ref-Size (Formule uniquement) .xlsx
    11.9 KB · Affichages: 36

Anamiya

XLDnaute Nouveau
Re : Erreur 1004 sur une formule excel traduite en VBA

Bonjour Pierrejean et Si...

Tout d'abord merci de vos réponses.
Si..., ta macro à l'air de fonctionner, mais impossible de mettre la main sur le code (peut-être à regarder dans mes restrictions).

Sinon, j'aime bien l'idée du tableau d'équivalence, ça permettrait de faire face à tous les cas et de vérifier assez rapidement les correspondances. Je pense que je vais travailler dans ce sens.
Maintenant, me reste plus qu'à remonter mes manches et essayer de faire un code sans enregistrement :D

Merci à vous tous.
 

Si...

XLDnaute Barbatruc
Re : Erreur 1004 sur une formule excel traduite en VBA

salut

Bonjour à tous,
Je me lance depuis peu dans les macros ...

voir donc tes "restrictions".
Pour que Modeste* puisse jouer encore un peu ;), voici un tableau de correspondance made in VBA.

*je ne doute point que tu aurais pu aussi le programmer:D !
 

Pièces jointes

  • Tableau de correspondance (VBA) .xlsm
    26.1 KB · Affichages: 44

Anamiya

XLDnaute Nouveau
Re : Erreur 1004 sur une formule excel traduite en VBA

Merci Si... pour le code, il fonctionne parfaitement même une fois intégré au reste de la macro.
par contre petite question histoire que je ne puisse m'améliorer ;
-> dans le (k) après la fonction array à quelle fonction dans la code (pour les remplacement respectifs ou pour dire que ce sont 7 cas à part).

Et encore une fois, merci à tous pour les réponses. :)
 

Discussions similaires

Réponses
14
Affichages
645
Réponses
1
Affichages
1 K

Statistiques des forums

Discussions
312 195
Messages
2 086 079
Membres
103 112
dernier inscrit
cuq-laet