Problème formule matricielle

  • Initiateur de la discussion Cédric
  • Date de début
C

Cédric

Guest
Bonjour à tous ! Il s'agit de mon tout premier message sur ce forum, j'espère ne pas dire trop de bêtises.

Je suis en train de confectionner un petit outil de gestion et j'ai un problème avec une formule matricielle. Tout se passe sur la feuille de saisie dans le tableau du milieu. J'ai fait une formule matricielle pour la ligne Tefal qui marche parfaitement, cependant en voulant refaire la même chose pour la ligne Montant, cela me met l'erreur #Valeur.

La formule matricielle repose sur des colonnes présentes dans la deuxième feuille "Fichier SAP". J'ai examiné les deux colonnes et je me suis aperçu que la colonne montant comporte des chiffres dont le séparateur des milliers a été fait manuellement, ainsi ce n'est plus considéré comme un chiffre et je pense que l'erreur vient de là.

Le problème ç'est que j'extraie ce fichier SAP et qu'il est beaucoup plus long que celui que je vous ai fourni, je ne peux pas me permettre de toutes les retoucher à la main. Y a t il une solution pour convertir ces chiffres "hybrides" ? Ou alors au moins les afficher dans la case Montant.

Merci d'avance, j'espère avoir été clair. :)
 
C

Cédric

Guest
J'ai oublié le fichier :)

Voilà ç'est tout bon, j'espère que vous parviendrez à m'aider car ç'est assez important, merci ! :)
 

Pièces jointes

  • Projet1.xls
    18.5 KB · Affichages: 87
  • Projet1.xls
    18.5 KB · Affichages: 102
  • Projet1.xls
    18.5 KB · Affichages: 100
J

Jean-Marie

Guest
Bonsoir, Cédric

Tu as bien détecté la cause de ton problème.

Sélectionne la colonne F de la feuille fichier SAP, clique sur le menu édition, puis clique sur remplacer... , dans la boîte de dialogue affichée, dans la première zone mais un . (point), le deuxième champ doit rester vide, puis clique sur le bouton remplcer partout. Les valeurs seront converties automatiquements en numériques.

@+Jean-Marie
 
C

Cédric

Guest
Rah alors là j'y aurais jamais pensé, je vois que j'ai encore beaucoup d'efforts à faire pour maîtriser Excel. C'est fou toutes les possibilités qu'il y a dans ce logiciel.

Merci beaucoup tu viens de me sortir d'un sacré pétrin... Bien sympa ce forum, je pense que je vais m'y établir pour progresser. :)
 
C

Cédric

Guest
Je connais pas du tout VBA mais serait-il possible d'automatiser cette petite astuce, le fait de remplacer le point par un espace vide ? Juste pour un souci d'optimisation du fichier car le fichier SAP sera remplacé chaque jour.

Merci d'avance.
 
Z

Zon

Guest
Bonsoir à tous,


Voici une code que j'ai associé à un bouton sur ta feuille SAP..


Sub remplacer()
With Sheets("Fichier SAP").Range("F2", "F" & Range("F65536").End(xlUp).Row)
.Replace what:=".", replacement:=""
End With
End Sub




A+++
 

Pièces jointes

  • Projet1.zip
    11.2 KB · Affichages: 29
  • Projet1.zip
    11.2 KB · Affichages: 29
  • Projet1.zip
    11.2 KB · Affichages: 30
C

Cédric

Guest
Merci pour ce code ! Cependant j'ai une petite erreur, la macro fonctionne bien pour les chiffres tronqués mais les bons chiffres voient leurs virgules disparaître.

En ce qui concerne les chiffres dont on supprime le point, il y a une petite erreur, il me dit de convertir en nombre, néanmoins ça l'air de fonctionner, est-ce que je peux ignorer cette erreur ?
 
Z

Zon

Guest
Re et bonjour à tous,



Pas le temps de regarder avant ce soir je pars au boulot, pb avec la fonction replace que je dois regarder de plus prés (que je n'ai jamais utilisé), si tes virgules disparaissent c'est grave tes montants sont multipliés par 100 si tu as 2 chiffres aprés la virgule


A+++


PS: Si qq1 pouvait aider Cédric aujourd'hui..
 
J

Jean-Marie

Guest
Bonjour, tout le monde

Ha ! VBA c'est de la programmation en anglais, les dates et les chiffres décimal...

Tu trouveras une petite macro XL4 (5lignes) et un bouton activation dans la feuille du fichier SAP. Si tu veux te repositionner sur une cellule, après la fin de la macro, tu peux le faire facilement en ajoutant avant la cellule contenant =ECRAN(VRAI), une cellule contenant =SELECTION.ATTEINDRE() et place entre les deux paranthèses la référence de la cellule.

@+Jean-Marie
 

Pièces jointes

  • download-8.xls.zip
    4.7 KB · Affichages: 23
M

Monique

Guest
Bonjour,

Pour les points à remplacer par rien du tout :
=SI(ESTVIDE(F2);"";SUBSTITUE(F2;".";"")*1)
à copier coller vers le bas.
Ensuite, copier puis Edition - Collage spécial - Valeurs
Mais ça risque d'être fastidieux de faire ça tous les jours.

Pour la formule qui compte les montants ou les nombres, sommeprod() fonctionne très bien aussi est a l'avantage de pouvoir être validée de façon classique et non en appuyant simultanément sur 3 touches du clavier.
En D14 :
=SOMMEPROD((Matricule=$C4)*(Période=D$12);Nombre)
En D15 :
=SOMMEPROD((Matricule=$C4)*(Période=D$12);Montant)
 
C

Cédric

Guest
Merci sincèrement pour votre aide.

Le bouton "Convertir" marche parfaitement, j'aimerais juste savoir comment on peut le déplacer de feuilles. Autre chose, comment on affecte cette macro à un bouton, j'ai beau essayé je ne comprends pas. J'essaye de bidouiller dans Visual Basic mais pas facile.

La fonction =SelectionAtteindre marche parfaitement, ç'est bien pratique.

Pour Monique, merci pour le sommeprod cela fonctionne sans la manipulation des formules matricielles, mais quelqu'un pourrait m'expliquer pourquoi ?

Je me mets à apprécier réellement Excel pour toutes les possibilités offertes d'améliorer les outils réalisés.

Merci bp et bonne journée à tous.
 
J

Jean-Marie

Guest
Re...

Pour déplacer dans une autre feuille le bouton, c'est relativement simple.
En cliquant sur le bouton gauche de la souris tu lances la macro, mais avec le clic droit tu peux le sélectionner sans l'exécuter, puis fais un copié, tu te déplaces dans l'autre feuille et tu fais un collé, avec cette manipe tu n'auras pas à réaffecter la macro.

Pour affecter une macro à ce bouton, toujours avec le clic droit, tu fais apparaître un sous-menu, et clique sur affecter une macro, dans la boîte de dialogue, choisis un nom ou sélectionne la référence de la cellule du début de la macro, puis valide.

@+Jean-Marie
 
C

Cédric

Guest
Bonjour à tous, j’ai de nouveaux problèmes dans la conception de mon outil et je me demandais si vous pouviez me donner un coup de main.

Dans la feuille 1, j’aimerais qu’il soit inscrit dans la case « Indemnités Maladie », la somme des montants des mois où le nombre de jours n’est pas égal à 0. J’ai beau me creuser la cervelle, je ne vois pas.

Pour la feuille 2, j’aimerais une macro qui déplace dans un premier temps, la table « Planning2003 » à la place de la table « Planning2002 ». A la place de la table « Planning2003 », j’aimerais qu’il mette une table « Planning2004 » comme je l’ai mis dans l’exemple le titre Planning paie 2004 mais il faudra que le 2004 s’inscrive automatiquement car j’aimerais que le bouton macro serve pour chaque changement d’année. Il faut que la colonne E5 :E16 soit vide, ceci est à compléter manuellement et que la colonne F5 :F16 contiennent la formule E5+1 ; E6+1 etc… C’est une sorte de boucle sans fin. J’espère avoir été assez clair mais je pense vous en demander un peu trop.

Je vous souhaite une bonne journée et merci d’avance.

Cédric.
 

Pièces jointes

  • Mail.xls
    18 KB · Affichages: 91
  • Mail.xls
    18 KB · Affichages: 79
  • Mail.xls
    18 KB · Affichages: 86
M

Monique

Guest
Bonjour,

Pour la première partie de ta question, voici au choix :
=SOMME.SI(B2:M2;">"&0;B3:M3)
=SOMME.SI(B2:M2;">0";B3:M3)
=SOMMEPROD((B2:M2>0)*1;B3:M3)
=SOMMEPROD((B2:M2>0)*B3:M3)
Formules matricielles mais ça ne vaut pas le coup :
=SOMME((B2:M2>0)*(B3:M3))
=SOMME(SI((B2:M2>0);(B3:M3)))
 

Statistiques des forums

Discussions
314 654
Messages
2 111 598
Membres
111 215
dernier inscrit
fateh