Excel2010: traduction dans une formule

Résolu/Fermé
El-sol - 25 avril 2014 à 20:32
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 - 9 mai 2014 à 18:06
Bonjour,

J'ai quelqu'un qui m'envoie un fichier à chaque 2 semaines.
Dans son fichier, elle inscrit la période en B2, ex: 24 avril au 6 mai

J'ai de la facturation à faire et je veux automatiser le tout avec son fichier. Ma facturation se fait en premier lieu dans une autre feuille de calcul.
J'ai commencé par inscrire la formule suivante:

="Circulaire pour la période du "&TEXTE(DROITE($B$2;NBCAR($B$2));"jj mmmm aaaa")&" 2014"
Ce qui donne comme résultat: Circulaire pour la période du 24 avril au 6 mai 2014

(J'ai peut-être des choses en trop dans ma formule, c'est pas moi qui ai créé cette formule car je l'ai copié à partir d'un autre fichier, mais au moins, ça fonctionne. Vous pouvez me proposer autre chose, c'est le bienvenue)

Jusque là, ça va. Mais le hic c'est que j'ai aussi de la facturation en anglais à faire.
Y a-t-il moyen de faire une formule qui irait quand même chercher l'info dans ma cellule B2 et qui donnerait comme résultat :
Flyers from April 24 to May 6 2014

(ensuite, j'irai mettre des conditions pour les clients français, d'aller chercher le premier résultat, et les anglais, le 2e résutlat.)


Merci pour votre aide.

19 réponses

Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
25 avril 2014 à 20:44
Bonsoir,

pour la première question comme cela suffit

="Circulaire pour la période du "&B2&" 2014"

pour la deuxième je regarde
0
Merci pour la première question. Je ne pensais pas que ça pouvait être si simple.

J'ai hâte de voir si vous allez pouvoir trouver quelque chose pour la 2e.

merci
0
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
25 avril 2014 à 22:05
Re,

il y a surement plus simple, mais pour commencer, teste le fichier, il suffit de saisir des date colonne B jusqu'à B40, ensuite il suffit de sélectionner la langue en E2, la traduction est automatique en colonne G

https://www.cjoint.com/?DDzwe2Waeyg
0
WOH !!!!!!!!
Assez flyé comme formule !
Aucune idée comment ta formule fonctionne mais ça m'impressionne.

J'ai testé avec différentes dates mais je constate que ça accroche un peu en anglais et je ne sais pas pourquoi.

voici un exemple de dates qui ne marchent pas:
14 au 27 avril
car quand c'est dans le même mois, la personne ne répète pas le mois.
En français ça fonctionne mais si je met anglais, ça n'écrit rien.

De plus, en anglais, c'est écrit "Flyersfrom " et j'ai voulu rajouter un espace entre Flyers et from mais le résultat ne fonctionne plus.

Peux-tu voir pourquoi ça fait ça svp ?

Merci beaucoup,


On est sur la bonne voix.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
Modifié par Mike-31 le 28/04/2014 à 16:40
Re,

pour répondre à ta première question, j'ai traité ton problème avec une formule personnalisé et une formule matricielle.
Lorsque tu modifies une formule matricielle, il faut la confirmer non pas avec la touche Entrée mais en même temps avec les trois touches du clavier Ctrl, Shift et Entrée, si tu fais bien la formule se place entre {} comme tu peux voir dans la barre des formules.

Pour la deuxième question, ce dernier format n'était pas dans ta demande initiale, donc pas traité
Teste ce nouveau fichier et lorsqu'il sera au top je verrais de compacter le code certainement en VBA

https://www.cjoint.com/?DDCqNAxHCz0
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Bonjour,

ça fonctionne super bien.
Pour le format qui n'avait pas marché, c'est en faisant des tests que j'ai réalisé ça.
Et si je comprends bien, quand on va arriver en 2015, je dois aller directement dans les arguments de la fonction pour aller le modifier. J'ai testé ça aussi, et ça fonctionne bien.

J'ai encore plein de programmation à faire encore pour automatiser le fichier de facturation et d'autres tests à faire pour m'assurer que le transfert supporte bien toutes ces modifications (c'est un transfert entre Excel et Accpac)


Un gros merci pour tout.
0
oups,
j'ai un p'tit problème.
Je n'arrive pas à sauvegarder ton fichier. C'est en lecture seule et ça prend un mot de passe.
J'ai donc fait un copier/coller dans un nouveau fichier.
tout semblait bien fonctionner... mais en français seulement.
Si je choisir anglais, ça présente: #NOM?
Pourquoi ???
0
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
29 avril 2014 à 14:58
Re,

Non il n'y a pas de mot de passe, il faut simplement l'ouvrir, puis Fichier/Enregistrer sous/tu peux le renommer si tu veux ou non, c'est tout
0
ok, ça marche.

mais si je veux copier la formule qui est dans G2 dans mon fichier de facturation, incluant le tableau avec les mois en français et anglais, comment dois-je procéder ?
Tes Feuil1, Feuil2, Feuil3 sont-elles nécessaires ? J'ai pas compris à quoi elles servent.

merci
0
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
29 avril 2014 à 16:03
Re,

Ok,

alors il faut ouvrir le visual Basic de ton fichier, pour cela clic sur la touche Alt et la touche de fonction F11, ou clic droit sur l'onglet d'une feuille/Visualiser le code

Insertion/Module, un module VBA sera créé et se nommera par défaut Module1
tu remarquera sur la droite une grande partie vide. C'est dans cet espace qu'il faudra copier ce code

Function ExtraireChiffres(Cellule, Place)
'Idem que NumChaineOccur
longueur = Len(Cellule)
p = 1
occur = 0
Do
temp = ""
Do While Not IsNumeric(Mid(Cellule, p, 1)) And p <= longueur
p = p + 1
Loop
Do While IsNumeric(Mid(Cellule, p, 1)) And p <= longueur
temp = temp & Mid(Cellule, p, 1)
p = p + 1
Loop
occur = occur + 1
Loop Until occur = Place
ExtraireChiffres = Val(temp)
End Function

ensuite tu pourras copier la formule sur ton fichier sans oublier de la confirmer en matricielle avec les trois touches du clavier Ctrl, Shift et Entrée comme je te l'ai expliqué plus haut.

il faudra également copier la plage nommée mois en jaune
0
Ju@nita Messages postés 149 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 8 août 2024
8 mai 2014 à 21:21
bonjour Mike,

J'ai réussi à copier presque tout. ça accroche juste à une place.
J'ai fait plusieurs tests et je n'arrive pas à comprendre ce qui cloche.
Et pour être certaine que ça fonctionne, j'avais même pris la peine de les copier dans les mêmes cellules.
Ex: la plage "mois" est dans I4 à J15.
Mais dans mon fichier, la formule prend juste la plage J4 à J15.
Pourquoi ça prend juste une colonne ?
Je ne vois pas la plage nommée dans la formule matricielle. Je vois juste le mot "mois".
comment je fais pour redéterminer la plage des mois svp ??
merci
0
Ju@nita Messages postés 149 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 8 août 2024
Modifié par Ju@nita le 8/05/2014 à 21:32
ok j'ai trouvé. mais ça ne marche plus.
en français, ça me donne le résultat mais plus en anglais. ça laisse une ligne blanche. mais pourtant, je vois la plage qui est bien déterminée.
0
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
8 mai 2014 à 21:53
Re,
pourtant le code est correct, as tu nommé la plage mois, le mieux serait que tu construises un fichier avec quelques exemples de date et que tu le mettes à notre disposition avec ce lien

https://www.cjoint.com/
0
Ju@nita Messages postés 149 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 8 août 2024
9 mai 2014 à 15:13
voici mon fichier.
dis-moi svp où est l'erreur qui fait qu'en anglais, ça ne marche plus.

https://www.cjoint.com/?DEjpm2DooSz^

merci beaucoup.
0
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
9 mai 2014 à 16:24
Re,

Il y a une fonction personnalisée que tu n'as pas copiée sur ton fichier,

clic droit sur l'onglet de ta feuille et Visualiser le code ou Alt et touche F11 ce qui va t'ouvrir le visual basic, ensuite

insertion/Module et dans le module il faut coller ce code

Public Function Conversion(Cellule)
Dim ml, mois, dat As Variant, i As Integer
Application.Volatile
Conversion = "Erreur" '"#DATE#"
mois = Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Decembre")
For i = 0 To UBound(mois)
If Left(Cellule, Len(mois(i))) = mois(i) Then
If Mid(Cellule, Len(mois(i)) + 1, 1) <> " " Then
Cellule = Left(Cellule, Len(mois(i))) & " " & Mid(Cellule, Len(mois(i)) + 1)
End If
Exit For
End If
Next i
If i > 11 Then Exit Function
Cellule = Replace(Cellule, " ", " ")
ml = Split(Cellule, " ")
On Error Resume Next
dat = DateValue(Val(ml(1)) & "/" & i + 1 & "/" & ml(2))
If i < 12 And IsDate(dat) Then Conversion = Date + TimeValue(ml(3))
End Function

Function ExtraireChiffres(Cellule, Place)
'Idem que NumChaineOccur
longueur = Len(Cellule)
p = 1
occur = 0
Do
temp = ""
Do While Not IsNumeric(Mid(Cellule, p, 1)) And p <= longueur
p = p + 1
Loop
Do While IsNumeric(Mid(Cellule, p, 1)) And p <= longueur
temp = temp & Mid(Cellule, p, 1)
p = p + 1
Loop
occur = occur + 1
Loop Until occur = Place
ExtraireChiffres = Val(temp)
End Function

0
Ju@nita Messages postés 149 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 8 août 2024
9 mai 2014 à 17:23
ok, j'ai copié le tout dans mon petit fichier et ça fonctionne.
Par contre, si je le fais dans mon gros fichier, ça ne marche plus, probablement parce que mes données ne sont pas aux mêmes endroits.


J'ai donc voulu retourner dans le VBA mais il n'y a rien, on dirait que ce que j'ai copié n'y est plus. Je pense que je ne clique pas au bon endroit pour le visualiser.


Peux-tu me dire quelles sont les lignes du code dont je dois porter une attention particulière pour faire des changements ? car je ne vois rien qui fait références à des cellules précises ou colonnes. En fait, ça semble parler de la colonne i. Au moins, ma plage de mois est dans la même colonne que le petit modèle.


Et quand je fais des modifications dans la formule qui est entre { } (et j'ai bien appris à faire le ctrl+maj+enter pour confirmer), ça me donne le message suivant:

Nom ambigu détecté: ExtraireChiffres

qu'est-ce que ça veut dire ???

merci pour ton aide précieuse.
0
Ju@nita Messages postés 149 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 8 août 2024
9 mai 2014 à 17:46
ok oublie ça, j'ai trouvé pourquoi ça ne marchait pas !!!!
dans mon gros fichier, la date d'origine était : 3 au 9 avril alors que ça devait être écrit: 3 avril au 9 avril.
Il faut que le mois soit écrit 2 fois si la période est dans le même mois. (si des fois quelqu'un d'autre se retrouve dans la même situation, c'est bon à savoir).
Je vais aviser la personne qui me fournit le fichier de toujours écrire les mois même si les 2 dates sont dans le même mois.

Tout fonctionne à merveille

Un gros merci à tous ceux qui m'ont aidé dans ce gros projet.
C'est mon boss qui va être content car j'ai une collègue qui va sauver énormément d'heures à chaque semaine.

Il y a plein de choses que j'ai demandé dont je ne croyais même pas que ça se pouvait et vous êtes tous de très bons experts en la matière. J'adore Excel de plus en plus et longue vie à ce site merveilleux.

merci encore et ça finit très bien la semaine !
0
veux bien mettre résolu, j'ai dû me déconnecter pour reprendre mon nick original du message mais l'option Résolu n'apparaît pas plus en haut :(
Quelqu'un sait comment le faire autrement svp ?
merci
0
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
9 mai 2014 à 18:06
Re,

le statut est en résolu, mais dans la discussion il y a El-sol et Ju@nita es ce le même demandeur ou deux personnes différentes parce que j'ai du mal à suivre deux discussions en même temps seul Napoléon en était capable
0