> Tous les forumsBureautique

 Importations prix entre fichiersSujet résolu
Statut du sujet : RESOLU Imprimer
 titoubi
  Posté le 08/04/2008 @ 19:07  
 Petit astucien

71 Messages

bonjour à tous,

Voilà, une personne m'envoie tous les mois un fichier "\global" avec en colonne B les reférences des articles en stock et en colonne D les prix associés et ce sur plusieurs feuilles.

Dans un nouveau fichier "\mon fichier" (au format complètement different) je sélectionne des articles dont le stock est à 0, je souhaiterai en fonction de la réf de l'article (en colonne K de mon fichier) récupérer le prix dans le fichier précédent(rechercher dans plusieurs feuilles) et le placer en face de l'article dans la colonne M de mon fichier.

Je souhaiterai exécuter cette macro en semi-manuel C.A.D. en sélectionnant l'article voulu dans mon fichier et en appuyant sur CTRL + une autre touche, pour re chercher uniquement le prix associé à l'article.

De plus, pour une autre application mais le même besoin cette fois en automatique pour tous les articles de la page en cliquant sur un bouton de contrôle.

Je suis sûr que ces macros ont déjà été réalisées.

Merci d'avance

 Afficher le profil de titoubi Envoyer un message privé à titoubi
 
 
Publicité
 Bérylion  Posté le 08/04/2008 à 19:49  
Astucien


2278 Messages
Message original par titoubi

Je suis sûr que ces macros ont déjà été réalisées.






si on les avait, on pourrait ptet comprendre un peu plus !!

tu donnes aucun détail, pas facile comprendre ce que tu veux faire...

avec des exemples "en dur" (Cjoint.com), possible qu'on cerne un peu mieux.




Afficher le profil de Bérylion Voir la configuration de BérylionEnvoyer un message privé à Bérylion
 Revenir en haut de la page
 titoubi  Posté le 08/04/2008 à 20:44  
Petit astucien

71 Messages

Bonjour Bérylion

Voici un exmple, comme je l'ai expliquer avant , les 2 premières feuilles de cet exemple ne font pas partie du même classeur que la troisième feuille mais bon pour l'exemple je les ai mises dans le même classeur (précise moi comment ouvrir un autre classeur, après le mode de recherchepour doit être le même...)

Il faut donc rechercher le prix des articles de la feuille 3 dans les feuilles 1 ou 2 (ou + si nécessires) et les coller dans la colonne "prix unitaire" de la feuille 3.

Les 2 solutions sont nécessaires (par article et/ou pour tous les articles d'un coups).

http://cjoint.com/?eiuHTk5yMG

J'espère être un peu plus clair ! ! !

A+

Afficher le profil de titoubi Voir la configuration de titoubiEnvoyer un message privé à titoubi
 Revenir en haut de la page
 Bérylion  Posté le 09/04/2008 à 00:18  
Astucien


2278 Messages

Salut

pour la "totale", ça pourrait ressembler à un truc du genre :

VBA
  1. Sub test()
  2. Application.ScreenUpdating = False
  3. For i = 4 To Selection.SpecialCells(xlCellTypeLastCell).Row
  4. If Cells(i, 1).Value <> "" Then
  5. ref = Cells(i, 1).Value
  6. Workbooks("global").Activate
  7. For j% = 1 To Sheets.Count
  8. With Sheets(j).Range("b:b")
  9. Set adrs = .Find(what:=ref, LookIn:=xlValues)
  10. If Not adrs Is Nothing Then
  11. prix = Range(adrs.Address).Offset(0, 3).Value
  12. Exit For
  13. End If
  14. End With
  15. Next
  16. End If
  17. ThisWorkbook.Activate
  18. Cells(i, 5).Value = prix
  19. Next
  20. Application.ScreenUpdating = True
  21. End Sub

la macro est à coller dans un module standard du classeur "monfichier"
les 2 classeurs doivent être ouverts pour que ça tourne...

pour le "cas par cas", c'est jouable, yaka adapter le code ci dessus à activecell, sans la 1ere boucle.

je jetterai un zoeil demain, après le

paske la maintenant :



Afficher le profil de Bérylion Voir la configuration de BérylionEnvoyer un message privé à Bérylion
 Revenir en haut de la page
 ferrand  Posté le 09/04/2008 à 01:13  
Astucien

1600 Messages

Salut,

Une contribution pour la 1ère question: voir les fichiers MonFichier et Global

NB: les colonnes de tes modèles ne correspondent pas à tes spécifications initiales... il suffira d'ajuster les références sur tes bonnes colonnes.

Bérylion.



Modifié par ferrand le 09/04/2008 01:15
Afficher le profil de ferrandEnvoyer un message privé à ferrand
 Revenir en haut de la page
 titoubi  Posté le 09/04/2008 à 07:47  
Petit astucien

71 Messages

Merci Messieurs,

je vais essayer de les appliquer aujourd'hui au boulot.

Pour Bérylion: comment déclencher ta macro "totale" (et oui je suis novice dans VBA! ! ! ) et pour le cas par cas "activcell sans la première boucle" ? ? ? ? merci de développer un peu, pour mon apprentissage tes solutions m'intéressent.

Pour Ferrand: tu proposes de mettre à jour le prix en cliquant sur la cellule, c'est beaucoup plus simple et je garde l'idée mais si je voulais utiliser une combinaison de touche pour lancer la macro comment l'écrire ? (bon à savoir pour la prochaine fois !) Et pourquoi mettre une condition sur la quantité car elle représente la quantité à commander pas la quantité restante en stock. Ceci dit je garde également pour une autre application . Peux-tu développer également ta macro pour ma formation?

Pour tous les deux : pouvez-vous déclancher la macro si une croix est placée dans la première cellule de la ligne d'un article (ex: une croix en A8=recherche du prix pour l'article en B8) ?

Merci encore à tous les deux et si vous pouviez commenter (REM, je croix!) les lignes de commande pour me former un peu et je comprendrais mieux pour l'adapter à mes fichiers

Encore merci pour votre dispo, bravo!

Afficher le profil de titoubi Voir la configuration de titoubiEnvoyer un message privé à titoubi
 Revenir en haut de la page
 ferrand  Posté le 09/04/2008 à 11:28  
Astucien

1600 Messages

Bonjour,

Voilà : http://cjoint.com/?ejlxmLnJ5d

Pour aller plus vite, j'ai mis les commentaires dans le module, les commentaires précèdent les instructions qu'ils commentent. Ouf, je crois bien que j'ai jamais mis autant de commentaires sur une macro (en général, j'en mets pas ou juste des repères) mais c'est pour que tu puisses interpréter pas à pas l'exécution...

J'ai ajouté à la suite mes réponses à tes deux questions. Le plus simple pour moi (mais il y a toujours d'autres solutions, à toi de voir avec l'ensemble des suggestions qui te seront fournies)

Bonne journée

Afficher le profil de ferrandEnvoyer un message privé à ferrand
 Revenir en haut de la page
 Bérylion  Posté le 09/04/2008 à 11:36  
Astucien


2278 Messages



on partage les taches !!

je repasse entre 12h et 13h...
Afficher le profil de Bérylion Voir la configuration de BérylionEnvoyer un message privé à Bérylion
 Revenir en haut de la page
 ferrand  Posté le 09/04/2008 à 16:48  
Astucien

1600 Messages
... et c'était tout à fait spontané
Afficher le profil de ferrandEnvoyer un message privé à ferrand
 Revenir en haut de la page
 Bérylion  Posté le 09/04/2008 à 17:21  
Astucien


2278 Messages
ferrand a écrit :

... et c'était tout à fait spontané

j'en doute pas une seconde !

au passage j'ai repompé ton classeur en ajoutant "la totale" :

double-clic (ou simple) en cellule E3 et ça lance le bouzin...

Afficher le profil de Bérylion Voir la configuration de BérylionEnvoyer un message privé à Bérylion
 Revenir en haut de la page
 ferrand  Posté le 09/04/2008 à 17:43  
Astucien

1600 Messages
Et tu l'as mis où ?
Afficher le profil de ferrandEnvoyer un message privé à ferrand
 Revenir en haut de la page
 Bérylion  Posté le 09/04/2008 à 20:43  
Astucien


2278 Messages
ferrand a écrit :

Et tu l'as mis où ?


bin je l'ai laissé au boulot pardi !!

Afficher le profil de Bérylion Voir la configuration de BérylionEnvoyer un message privé à Bérylion
 Revenir en haut de la page
 Bérylion  Posté le 10/04/2008 à 12:14  
Astucien


2278 Messages


ça doit être ça : http://cjoint.com/?ekmoeZp6sg


Afficher le profil de Bérylion Voir la configuration de BérylionEnvoyer un message privé à Bérylion
 Revenir en haut de la page
 ferrand  Posté le 10/04/2008 à 13:10  
Astucien

1600 Messages

, pas le temps de regarder de près mais bogue au démarrage : j'ai dû remplacer Workbooks("global") par Workbooks("Global.xls") et là ça fonctionnait.

Une petite remarque : ça affiche aussi des prix quand il n'y a pas de référence. Faudrait peut-être bloquer la chose ?

Bon pour le moment, je me débats avec mes menus qui refusent de rester organisés selon mes préférences. A plus et bonne journée.

Afficher le profil de ferrandEnvoyer un message privé à ferrand
 Revenir en haut de la page
 Bérylion  Posté le 10/04/2008 à 14:45  
Astucien


2278 Messages
ferrand a écrit :

, pas le temps de regarder de près mais bogue au démarrage : j'ai dû remplacer Workbooks("global") par Workbooks("Global.xls") et là ça fonctionnait.

Une petite remarque : ça affiche aussi des prix quand il n'y a pas de référence. Faudrait peut-être bloquer la chose ?

Bon pour le moment, je me débats avec mes menus qui refusent de rester organisés selon mes préférences. A plus et bonne journée.





pas trop le tps non plus.

en principe, avec "If Cells(i, 1).Value <> "" Then", ça devrait pas afficher quoi que ce soit si yapa de ref ?!
ptet un pb d'adressage...

@+

Afficher le profil de Bérylion Voir la configuration de BérylionEnvoyer un message privé à Bérylion
 Revenir en haut de la page
 titoubi  Posté le 10/04/2008 à 21:57  
Petit astucien

71 Messages

Alors là, bravo!

Super en plus avec les explications, Bérylion si tu pouvais en faire autant, encore deux petites questions

- Pour chercher dans plusieurs classeurs suffit-il de copier/coller le même prog bout à bout en changeant le nom du classeur à chaque fois ou existe-t-il une commande plus courte ?

- Enfin pour la solution des touches de raccourci vous avez quelque chose ? je ne sais pas comment attribuer une combinaison de touches à un module !!!!

Bérylion la totale est excellent, mais pour les cellules sans ref, t'as pu résoudre le pb? et pourquoi doit-on imposer une recherche en ("B:B"), ne peut-on pas chercher dans toutes les colonnes? Au cas ou la configue du classeur évolurait (décalage de colonne) il n'y aurait pas besoins de changer les coordonnées des colonnes!!!

Sinon Ferrand, j'ai essayer la modif en cherchant le pris lorsqu'une croix est placée en colonne A et... ça fonctionne

Je vous remercie encore et j'attends vos solutions avec impatience.

Merci A+

Afficher le profil de titoubi Voir la configuration de titoubiEnvoyer un message privé à titoubi
 Revenir en haut de la page
 Bérylion  Posté le 10/04/2008 à 23:05  
Astucien


2278 Messages

Salut

pour le raccourci clavier, le plus simple est encore de le faire en "manuel" :

outils/macro-> macros...

choisis ta macro, clique sur options, et fais toi plaisir !!

je jetterai un oeil demain sur mon usine à gaz. (tu peux remettre un ex. de "global.xls" sur cjoint ?)

++

B.

Afficher le profil de Bérylion Voir la configuration de BérylionEnvoyer un message privé à Bérylion
 Revenir en haut de la page
 ferrand  Posté le 11/04/2008 à 10:22  
Astucien

1600 Messages

Salut,

Si tu tiens absolument à une touche de raccourci, tu vas dans Outils>Macros, tu sélectionnes la macro (son nom) et tu cliques sur Options : tu seras invité à saisir une lettre pour ton raccourci clavier qui sera de la forme: Ctrl+?

Désolé Bérylion, je viens juste de voir que tu avais dit la même chose en cherchant la question suivante...

Pour chercher dans plusieurs classeurs : pas la peine de reproduire plusieurs fois... il faut mettre la partie répétitive dans une boucle qui balaie les classeurs (diverse options selon que les classeurs sont censés être ouverts ou que la proc. doit les ouvrir s'ils ne le sont pas et/ou éventuellement les fermer après usage)...

Pour les cellules sans référence, c'est pas vraiment un problème, il suffit d'un test... Par contre si tu veux une macro qui fonctionne dans des classeurs à structure variable, même si sous certaines conditions (que les variations possibles soient exhaustivement connues à l'avance) ce n'est pas impossible à réaliser tu risques fort d'avoir pas mal de soucis avec à l'usage. Je me souviens (dans mon jeune âge) avoir fait une macro pour laquelle (sans aller jusqu'à ce que tu as l'air de demander) j'ai toujours eu quelques incertitudes... elle fonctionnait très bien et très vite... mais qu'est-ce que j'ai passé comme temps à vérifier à la main que le résultat produit était bien complet et conforme à ce qu'on attendait . Comme en tout domaine rien ne vaut une structure stable (sans rigidité excessive ) pour sa tranquillité d'esprit .

Bonne journée.

Afficher le profil de ferrandEnvoyer un message privé à ferrand
 Revenir en haut de la page
 Bérylion  Posté le 11/04/2008 à 10:33  
Astucien


2278 Messages

ferrand a écrit :

Une petite remarque : ça affiche aussi des prix quand il n'y a pas de référence. Faudrait peut-être bloquer la chose ?




bin oui, forcément, je vide pas la variable à chaque tour...

bon, c'est recrifié : http://cjoint.com/?elkF2QcC2g
Afficher le profil de Bérylion Voir la configuration de BérylionEnvoyer un message privé à Bérylion
 Revenir en haut de la page
 Bérylion  Posté le 11/04/2008 à 13:20  
Astucien


2278 Messages

titoubi a écrit :

pourquoi doit-on imposer une recherche en ("B:B"), ne peut-on pas chercher dans toutes les colonnes?

pour la simple et bonne raison que le petit nain dans la machine ne fait pas la différence entre 75 et 75,00€

on peut essayer de lui espliker, faut que je creuse...

titoubi a écrit :

Au cas ou la configue du classeur évolurait (décalage de colonne) il n'y aurait pas besoins de changer les coordonnées des colonnes!!!


c'est pas viable comme système, puisqu'il faut intéragir sur le classeur dans lequel s'effectue la recherche.
le plus évident serait de nommer des plages dans "global.xls" : on peut toujours bricoler sur les différences de colonnes mais faut être sûr que le "global" aura toujours ces plages nommées...
Afficher le profil de Bérylion Voir la configuration de BérylionEnvoyer un message privé à Bérylion
 Revenir en haut de la page
 titoubi  Posté le 19/04/2008 à 19:47  
Petit astucien

71 Messages

Vous êtes vraiment Super , oui je me répète... mais c'est vraiment génial.

Merci

Afficher le profil de titoubi Voir la configuration de titoubiEnvoyer un message privé à titoubi
 Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte




Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !
 

 > Tous les forumsBureautique

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page