| ||||||||
Petit astucien | Bonsoir, Je suis en train de bâtir un formulaire que je dois envoyer a des gens. Aucun problème pour construire le formulaire mais j'aimerais y apporter un ajout. Lorsque les gens auront remplis le formulaire ils devront me le retourner et j'aimerais que toutes les informations de la ligne 250 aillent ce coller avec un collage spécial/valeur dans un fichier sur mon C:/ (nommé: Recap pour le bien de l'excerice) a la suite des informations déja dans le fichier. L'entete du fichier Recap serait a la ligne 10 donc lorsque je recevrais le 1er fichier et que je cliquerais sur la macro, les informations de la ligne 250 du fichier recu irait se coller a la ligne 11 du fichier Recap. Au deuxieme fichier ca irait a la ligne 12 et ainsi de suite. Mais lors du copier/coller des information du fichier recu vers le fichier Recap la macro découvre que l'information se trouvrant dans la colonne A se retrouve deja dans une des colonnes A du fichier Recap alors au lieu de la rajouter a la suite des autres lignes, elle remplace la ligne ou l'information est identique. Normalement la cellule A serait la cellule ou on retrouverait les # de magasins.
Hmmmm...suis-je assez clair? Merci de votre aide
| |||||||
Publicité | ||||||||
| ||||||||
Astucien | Bonsoir, On fait avec tes indications . Classeur nommé Recap - Classeur formulaire, on ignore le nom, on ne sait d'ailleurs pas si le nom sera le même... On ne sait si plusieurs feuilles ou non : comme il en faut une et une seule, ce sera la première dans tous les classeurs. Dans le classeur Recap, mettre la macro ci-dessous dans un module standard : Sub Récap(frec As String) Dans le classeur formulaire (le modèle qui sera dupliqué), mettre la macro suivante dans le module ThisWorkbook : Private Sub Workbook_Open() A la réception d'un classeur formulaire en retour, l'ouvrir alors que le classeur Recap est ouvert. L'opération se fera automatiquement à l'ouverture. Si les classeurs sont au format 2007 et ultérieurs, remplacer Recap.xls par Recap.xlsm dans la macro formulaire. Il ne sera pas inutile de prévenir les destinataires que le formulaire contient une macro pour le retour et qu'il ne se passera rien pour eux, qu'ils l'activent ou non. | |||||||
Petit astucien | Bon...je vais tenter d'être plus clair...car c'est pas facile a expliquer et j'avoue que moi-meme j'ai d'la misere a me comprendre pour cette demande. -Je recois un formulaire que je vais faire 1-Nom du fichier recu: Formulaire 2-Nom du fichier qui doit recevoir les données: Recap 3-Fonction de la macro: Prendre l'information de la ligne 250 du fichier Formulaire du premier onglet et allez le coller dans le fichier Recap à partir de la ligne 11. Par contre si la macro s'appercoit que l'information contenue dans la cellule "A" du fichier Formulaire se retrouve déja dans le fichier Recap alors au lieu de copier les informations a la suite des autres il remplace l'information déja existante
Est-ce que ca plus d'allure comme ca? | |||||||
Astucien | Là tu te répètes ! A part le nom du fichier formulaire. As-tu essayé ? Ou est-à dire que ce n'est pas toi qui émet le fichier formulaire que tu reçois ? Je conçois que si tu ne l'émets pas, tu ne peux y incorporer une macro ! Dans ce cas tu adaptes la macro : tu supprimes l'argument frec dans la première ligne, et dans la suite du code tu remplaces frec par "Formulaire" (avec les guillemets, si c'est bien le nom du fichier). Il te faudra la lancer, elle ne se lancera plus toute seule. | |||||||
Petit astucien |
Oui je me repete ca doit etre l'age! Ca ne fonctionne pas, j'ai tenté des deux facons meme si pour moi le mieux serait que je lance la macro moi-même. Voici ce que j'ai fait mais ca bloque au niveau du With ThisWorkbook.Worksheets(1) Dim n%, i%, lig250 As Range
End Sub | |||||||
Astucien | Set lig250 = Workbooks(Formulaire).Worksheets(1).Rows(250) Le nom du fichier est une chaîne, donc guillemets... Et autant pour moi ! l'extension fait partie du nom de fichier. Set lig250 = Workbooks("Formulaire.xls").Worksheets(1).Rows(250) | |||||||
Petit astucien | Ben oui toi...une belle erreur de débutant! J'ai modifié le tout et ca fonctionne très bien sur mon formulaire test, je vais faire mon vrai formulaire et si tout fonctionne aussi bien je viendrai fermer le sujet!
Merci de ton aide! | |||||||
Petit astucien | Alors tout fonctionne a la perfection..mais comme ca arrive souvent mes collegues ont demandés de changer un truc Si le nom du fichier formulaire change a chaque envoi mais que dans le nom du fichier le mot formulaire est toujours inscrit Exemple: formulaire 101 12 juin formulaire 253 572 formulaire J'aimerais que la macro fasse les memes étapes pour ces 3 exemples vu que les 3 ont le mots formulaire dans leur nom...est-ce possible? C'est tout ce qui me manque pour avoir fini mon document, enfin! | |||||||
Astucien | Reprenons ! Option Compare Text Sub Récap() en rouge les changements. Ne pas omettre l'option en tête de module pour que "Form" et "form" soit assimilés comme étant pareils. Les deux lignes contenant "Close", qui ferment le classeur formulaire après usage sont optionnelles : s'il y a plusieurs classeurs à traiter ouverts en même temps, la macro n'en traitera qu'un, si elle le ferme, il suffira de la relancer pour qu'elle traite le suivant, et ainsi de suite. On pourrait faire traiter plusieurs classeurs en ne lançant qu'une fois la macro mais il faut alors réorganiser les boucles et faire une petite adaptation... | |||||||
Petit astucien | Ca fonctionne a merveilles!!!! Merci beaucoup | |||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | ||||||||||||||||||
|