Copier-coller éléments sur une autre feuille

Zekron

XLDnaute Nouveau
Bonjour,

Je travaille actuellement sur un projet de facturation sur excel. J'utilise une macro pour le mener à bien, cependant je bloque sur une formule ...
Sur la Feuil1 j'ai tous mes éléments, mais je voudrais que seuls les éléments ayant une quantité différente de 0 se retrouvent dans la feuille facturation avec le libelle et le code article correspondant.
J'ai essayé de mettre au point une macro, mais il me manque cette formule ... :

Si D5 est supérieur à 0
alors copier dans le classeur facture
à tel emplacement les cases B5, C5 et D5

Ci-joint le fichier excel en question avec la macro.

Je vous remercie par avance de votre aide.

Cordialement
 

Pièces jointes

  • Test macro.xlsm
    22.9 KB · Affichages: 38
  • Test macro.xlsm
    22.9 KB · Affichages: 39

Zekron

XLDnaute Nouveau
Re : Copier-coller éléments sur une autre feuille

Modeste,

Une dernière petite chose, pouvez-vous m'expliquer un peu dans le détail les formules que vous avez utilisé pour régler mon premier problème, en particulier la fonction "PETITE.VALEUR" et "INDEX" ?

Cordialement
 

Modeste

XLDnaute Barbatruc
Re : Copier-coller éléments sur une autre feuille

Bonsoir,

Comme souvent en ces cas-là, le mieux est de décomposer la formule:
  • dans une cellule de ton choix, teste =LIGNES($1:1) et recopie vers le bas. Tu devrais obtenir une suite de nombres commençant à 1, puis 2, 3 etc.
  • essaie cette fois, dans une autre cellule: =PETITE.VALEUR(Feuil1!$E$5:$E$30;1). Tu devrais obtenir le plus petit n° de ligne figurant en colonne E de la Feuil1. Avec =PETITE.VALEUR(Feuil1!$E$5:$E$30;2), tu devrais obtenir le n° de ligne (toujours parmi ceux figurant en colonne E de Feuil1) immédiatement supérieur au précédent
  • remplace maintenant le 1 en gras et rouge dans la fonction PETITE.VALEUR ci-dessus par LIGNES($1:1) ... Tu me suis toujours?
  • tu sais certainement que la fonction INDEX renvoie la valeur à l'intersection d'une ligne et d'une colonne dans une plage? Si =PETITE.VALEUR(Feuil1!$E$5:$E$30;LIGNES($1:1)) donnait comme résultat 5, par exemple, alors
    INDEX(Feuil1!B$5:B$30;PETITE.VALEUR(Feuil1!$E$5:$E$30;LIGNES($1:1))) donnerait comme résultat la valeur figurant dans la plage E5:E30, en ligne 5 ... oui, je sais: tout ça pour ça! Mais, à vaincre sans péril on triomphe sans gloire, ne dit-on pas :D


Bon, rassure-moi, s'il manque des bouts à mes explications, tu les combleras avec ce que tu trouveras dans l'aide?
Et puis tu nous diras?
 

Discussions similaires

Réponses
2
Affichages
185

Statistiques des forums

Discussions
312 498
Messages
2 088 997
Membres
104 001
dernier inscrit
dessinbecm