Extraire données à placer dans une colonne
Re-bjr à tous et ttes,
j'espere que vous allez bien. je me permets de faire appel à vous car j'ai un soucis...
Voila ma difficulté :
En c2 j’ai l’année que je peux choisir via menu déroulant
En c3, j’ai le numéro d’article que je peux aussi choisir via une liste déroulante (les n° d’article font référence b6 :b24 de la feuil budget_mcae)
En b11 :b18 j’aimerais que vienne se placer le nom des fournisseurs indiqué dans la colonne E de la feuil encodage_données
La première difficulté est d’extraire de la colonne E de la feuil encodage le nom des fournisseurs en faisant en sorte qu’il ne soit repris qu’une seule fois dans la plage b11 :b18.
Exemple, dans la colonne E de la feuil. Encodage il est mentionné plusieurs fois le fournisseur 1 (fourn1) mais dans la plage b11 :b18, il ne devrait apparaitre qu’une seule fois. Le but étant de faire la somme des dépenses par trimestre (plage c11 :f18) pour une année de référence (ex. 2011) , pour un article précis (ex. 12319).
Une précision s’impose. Pourquoi faire une telle manip. ? parce qu’en fonction de l’article, le nom du ou des fournisseurs changent. J’aimerais donc pouvoir avoir la liste des fournisseurs par article.
Évidemment, je reste ouvert à tte suggestion et/ou propostion…ce fichier est en l’état un fichier « martyr » donc…pas problème…
Merci à vous qui accepterez de m’aider…
Bien cdlmnt,
Berni///
Bonjour Banzai64,
un tt grand merci pour votre réponse. elle est parfaite
si je peux me permettre deux observations :
1) la somme indiqué dans le tableau c11:f18, ne prend pas en compte les nouvelles données encodées sur la feuille encodage.
en pratique, si j'encode une info (par ex. une formation au 14/04/2012 soit au 2ième trimtre pour un coût de 500 €, cette somme n'apparaît pas ds la tableau et pour cause la formule en c11:f11 change de ligne après l'encodage..
2) je ne sias pq ..Mais lorsque j'insere une forme et qu'en fin de ligne je veux faire enter, j'ai un bugg...avec la macro..
exemple : à la fin de la ligne :"le problème est le suivant, si j'encode sur la feuil encodage, un nouvel article, la formule indiqué en c11:f11 ne prend pas en compte la ligne 4 de ma feuille encodage " j'ai voulu faire enter..et la macro m'a indiqué en bugg...possible de m'aider..?
merci à vous pour ce fichier qui est vraiment excellent.
tres cdlmnt,
berni///
Bonjour
benji71 a écrit :2) je ne sias pq ..Mais lorsque j'insere une forme et qu'en fin de ligne je veux faire enter, j'ai un bugg...avec la macro..
Je n'ai pas compris quel bug ?
Message d'erreur ?
Sinon pour le 1
re-bjr banzi64,
merci pour votre réponse et la fichier.
cela semble marché...je vais essayer de comprendre les modifs et voir comment vous y avez répondu. de anière générale quelle problème était lié à la non pris en compte des lignes insérés ?
en ce qui concerne le problème de bugg...lorsque je suis dans la zone texte dans une forme...j'ai comme messag erreur d'exécution 438 propiéte ou methode non gérée par cet objet.
quand je fais debogage j'ai ceci en jaune : If Selection.Count <> 1 Then
un tt grand merci à vous...
tres bonne après-midi...
clmnt,
berni////
Bonjour
Je ne vois pas comment tu fais pour avoir un bug
Je me suis placé dans une forme et ..... rien ne se passe !!!!!
Expliques pas à pas ce que tu fais, moi je n'y arrive pas à avoir un bug
bonjour banzai64, bonjour à tous et ttes,
merci banzai64 pour votre réponse. Ce matin je reviens vers vous d'une part pour essayer de résoudre mon problème de bugg avec une macro et d'autre part, j'aurais besoin de vos lumière concernant une formule pour le calcul d'une somme.
voici le texte que j'ai mis sur le fichier ci-joint :
Voici ce que je cherche à faire.
Je vais commencer par répondre à mon problème d’erreur. Voici comment je procède :
j’insère une forme
Modifier le texte
Je tape mon texte et lorsque je fais enter (pour passer à la ligne), j’ai le message ‘erreur d’exécution 438, propriété ou méthode non gérée par cet objet
Je fais débogage,
J’ai la vba qui s’ouvre et la ligne If Selection.Count <> 1 Then est en jaune,
macro en b10:b19
En b24 :b30, via la macro j’ai le nom des fournisseurs en fonction de l’année (c2) et du l’article (c3). J’aurais aimé faire pareille les cellules b10:b19
J’ai essayé en copiant et modifiant les cellules de référence de la macro que je suis venu placer au dessus de la première mais sans succès.
somme mensuellle/founisseurJ - j’aurais aimé trouvé la formule qui fasse en sorte qu'en c10 :n19 j'ai le montant des dépenses sur l'année indiqué en c2 pour les mois indiqué en c9:n9. ma difficultée étant d'indiquer dans la formule qu'il doit faire la somme par mois
merci à celui ou celle qui acceptera de m'aider...
tres bon début de journée..
berni///
Bonjour banzai64,
permettez-moi de commencer par vous remercier pour votre réponse et la qualité de celle-ci.
il est impressionnant de constater tt ce qu'il est possible de faire lorsqu'on maitrise comme vous excel. merci à vous.
si vous me le permettez, deux élements :
1) enc e qui concerne le messagd 'erreur, je me suis mis dans la forme, derière le mot problem et j'ai fais enter...et le message d'erreur est réapparu...bizarre, bizarre...vous avez dit...bizarre..
2) je suis entrain de réflechir sur comment je pourrais faire un tableau à ajouter sur la feuille budget article visant à faire le détail par fournisseur des différents sommes alloué par département. ex. pour le fournisseur 1 j'ai un département JOU dont j'aimerais connaître la somme dépensé durant une année. je reflechi à une présentation et si vous êtes d'accord je le post.
quouqu'il en soit, je vous souhaite une bonne après-midi en vous réitérant mes remerciements ainsi qu'a ce site que je continue à decouvrir et apprécier....
bàv,
berni///
Bonjour
benji71 a écrit :derière le mot problem et j'ai fais enter...et le message d'erreur est réapparu
benji71 a écrit :j'observe également que les couleurs e remplissage changent
La version d'excel probablement
benji71 a écrit :si vous êtes d'accord
Il n'y a pas à demander mon accord , tu poses toutes les questions que tu veux
Bonsoir à tous et ttes,
Me revoici avec mon fichier…j’essaie de trouver la meilleur mise en page et je pense peut-être avoir trouvé. J’aurais encore besoin d’une aide pour un nouvelle formule.
En i26 de la feuille budget_par_article, j’ai placé un menu déroulant qui est en lien avec les cellules b27 :b34. Ce que je souhaiterais faire c’est d’une part mettre dans les cellules i27 :i33, listé les différents départements par fournisseur et mettre les sommes dépensées par trimestre dans le tableau j27 :m34.
Les choses se compliquent donc…
Quel est le but de manœuvre ? Pouvoir dire pour un fournisseur choisi en i26, connaitre les dépenses sur une année (c2) pour chacun de ses départements indiqué préalablement en i27 :i34.
Sur ce coup là comme sur les précédents, j’ai besoin de vos lumières ..alors si vous avez un peu de de temps..vous pouvez regarder le fichier ci-joint et m’aider à résoudre cette difficultés.
Merci d’avance à celui ou celle qui pourra m’aider…
Bàv…
Berni///
bonsoir à ts et ttes,
je reviens vers vous car après avoir essayé de trouver la solution à ma difficultée, je reste bloqué..
evidemment je continue à chercher mai si l'un d'entre vous à une idée...se serait génial..
merci à vous,
bàv,
berni///
Bonsoir banzai64,
merci pour votre réponse qui m'enlève une fameuse épine hors du pied...
j'aurais juste une double questions :
- comment trouvez-vous ce fichier et aurait-il pu être présenter différemmen ?
- je n'ai pas bien compris le sens du "empty" pourqoi ne pas laisser la cellule vide ? comme c'est le cas dans les listes des fournisseurs ? si j'ai un somme sans département, celle-ci va s'inscrire dans le tableau sans avoir de nom pour le département et donc je saurai que je dois venir ajouter un departement.
j'ai fais des premiers essais et j'avoue être épaté...
un tt grand merci à vous...
Bonsoir
benji71 a écrit :- comment trouvez-vous ce fichier et aurait-il pu être présenter différemmen ?
Chacun ses goûts et ses besoins
benji71 a écrit :- je n'ai pas bien compris le sens du "empty" pourqoi ne pas laisser la cellule vide ? comme c'est le cas dans les listes des fournisseurs ? si j'ai un somme sans département, celle-ci va s'inscrire dans le tableau sans avoir de nom pour le département et donc je saurai que je dois venir ajouter un departement.
Enlèves le mot <empty> d'une cellule et tu auras le résultat avec département vide, et ce résultat est déjà présent
Bonjour à tous et ttes, bonjour banzai64,
je me permets de revenir vers vous afin de vous faire part de ma difficulté.
si je suis ce que vous m'avez invité à faire à savoir : "Enlèves le mot <empty> d'une cellule et tu auras le résultat avec département vide, et ce résultat est déjà présent" j'ai la somme du dernier département n'ayant pas d'objet qui s'inscrit.
de même, si je change d'artcile, le "empty" reviens...
ma question est de savoir s'il ne serait pas nécessaire de le retirer de la macro et laissant un espace vide comme par ex " "
je profite de post, pour savoir comment je pourrais faire en sorte de faire une bordure à la ligne ajouté lorsque j'encode des infos sur la lignes 2 de la feuille encodage. actuellement, si j'encode et que je fais enter, la ligne 2 va bien se mettre en ligne 4 mais sans bordure. j'imagine qu'il faudrait ajouter l'argument dans la macro suivante :
Sub AjouteCopieligne()
Dim c As Range
If Selection.Count <> 1 Then Exit Sub 'si on a selectionner plusieurs cellule alors on sors
If ActiveSheet.Name <> "encodage_données" Then Exit Sub 'Si on est pas sur la bonne feuille alors on ne fait pas le copier/coller
If Selection = Range("g2") Then 'Si on appuie sur enter et que l'on est dans la cellule E2 alors
Rows("4:4").Insert Shift:=xlDown 'on insere une nouvelle ligne sur la ligne 4
Range("b2", "g2").Copy 'On copy la ligne B2 -> E2
Range("B4").PasteSpecial xlPasteValues 'On colle les valeurs
Range("b2", "g2").Clear 'On supprime les valeurs
'Code permettant de mettre le contour autour des cellules
For Each c In Range("B2", "g2") 'Contour mis autour des cellules B2 -> g2
c.Borders(xlDiagonalDown).LineStyle = xlNone
c.Borders(xlDiagonalUp).LineStyle = xlNone
With c.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With c.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With c.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With c.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Next
'Code pour colorier en rose la nouvelle ligne collé
For Each c In Range("B4", "g4") 'Ligne B4 -> I4
With c.Interior
.ColorIndex = 38 '38 = rose
.Pattern = xlSolid
End With
Next
End If
End Sub
la question etant de savoir ou...?
merci de votre propostion pour résoudre cette difficultée, merci du temps consacré.
bàv,
berni///
ca marche ! super....génial..Merci banza64....
trop content...
voilà une journée qui commence bien ...
mille merci...
re-bjr...
me revoici avec un question...souhaitant protéger ma l'ensemble des cellules de la feuille d'encodage des données sauf les cellules b2:g2 qui servent à introduire les données, je me rendzs compte que si je protége ma feuille sauf ces cellules cela pose un problème à la macro...
voila comment je m'y prend :
je selectionne la feuille en cliquant sur la petit carré à coté de la colonne A,
je clic droit, format cellule, protection et je verrouille ttes les cellules,
je selectionne les cellules c2:g2, format, cellule et je déverrouille,
ensuite --> révision protéger la feuille.
une fois que cela est fait, j'encode des données dans les cellules b2:g2 et là...erreur d'éxécution 1004..la méthode insert de la classe range à échoué
je fais débogage et là, la ligne Rows(4).Insert 'on insere une nouvelle ligne sur la ligne 4 de la macro ce met en jaune...
y aurait-il un moyen de contourner le problème..?
merci de votre aide et suggestion..
tres bonne après-midi...
berni..
ps. dans mon esprit une fois la feuille protégé sauf les cellules b2:g2 ...lorsque la cellule g2 sera complétée et que j'aurais fait enter, je vais d'office me retrouver ne cellule b2..correct ?
Bonjour
la feuille sera protégée sans mot de passe
Si tu veux un mot de passe
Enlèves la remarques aux 2 lignes avec 'Password:="Le mot de passe" et tu y inscris le mot de passe (identique aux 2 lignes) que tu veux