|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
Lionel BellivierCabinet de gestion Inscription : octobre 2011 Messages : 32 ![]() |
Bonjour,
j'ai cherché dans tous les sujets (environ 503 pages) mais je n'ai pas trouvé. Alors, je me permets de vous poser mes petits problèmes que je suis incapable de solutionner; 1 - Je souhaite créer une macro qui recherche des conditions pour s'exécuter quand je la lance : j'ai une feuille nommée : Facture, j'ai 12 feuilles nommées de 1 à 12, (12 mois de l'année ) Je souhaite quand je dois saisir une facture nouvelle dans ma feuille facture, qu'une plage de cellules de celle qui est déjà saisie se copie, uniquement "en valeurs" dans la feuille correspondante : en clair : (enfin j'espère) si dans ma facture déjà saisie, dans la cellule A1 pas exemple, il y a 1, la copie doit se faire dans la feuille nommée1... 2 dans 2 etc. Ou mieux encore Imaginons que je n'ai pas de feuilles préparées (1 à 12) et que la macro crée une feuille sur laquelle se fait la copie et que cette feuille soit nommée automatique du nom de la cellule A1..... waw le pied ce serait ! Pouvez-vous m'aider ? Merci d'avance, Amicalement, Lionel, Je ne connais pas du tout VBA et je ne parle même pas anglais..... pas facile pour moi. Voilà ce que j'ai fait par recoupement : Code :
Merci pour votre aide, Amicalement, Lionel, |
||
|
|
02
|
|
|
#2 | ||
|
Membre du Club
![]() developpeur Inscription : octobre 2011 Messages : 85 ![]() |
Dans le même genre, afin d'avoir une création d'onglet à la demande et avec un model unique j'ai fait la macro ci dessous.
J'ai crée un onglet "model" avec la couleur, format etc... et donc je lance cette macro qui gére une copie de ce model avec le nom de mon choix qui pour toi par exemple peut se trouver dans ton onglet facture. Il est facile ensuite d'y ajouter des éléments comme la date nom du client etc... ![]() voici le code: Code :
|
||
|
|
00
|
|
|
#3 |
Lionel BellivierCabinet de gestion Inscription : octobre 2011 Messages : 32 ![]() |
Merci pour votre réponse.
Je vais essayer ça. Je suis complètement ignare en VBA c'est pourquoi je vous pose cette question : dois-je remplacer ce qui est écrit en français ? Merci de votre aide, vraiment ! Amicalement, Lionel, |
|
|
01
|
|
|
#4 |
|
Membre du Club
![]() developpeur Inscription : octobre 2011 Messages : 85 ![]() |
Il suffit de copier le code ci dessus d'en un module et de le lancer!!
La subtilité des noms va venir après avoir fait des essais .... |
|
|
00
|
|
|
#5 |
Lionel BellivierCabinet de gestion Inscription : octobre 2011 Messages : 32 ![]() |
Ok, je vais essayer comme cela.
Merci encore de votre gentilesse. ça beug à ce niveau : Code :
Sheets("model").Select ' Prend la forme du model unique à recopier |
|
|
01
|
|
|
#6 |
|
Membre du Club
![]() developpeur Inscription : octobre 2011 Messages : 85 ![]() |
Comme dit au dessus c'est un model!! Donc il faut créer un onglet "model"...
Le but c'est de ne pas recopier 50 fois la même chose. Dans cet onglet on peut préparer le travail en avance comme les couleurs les formules etc... A chaque fois que l'on souhaite créer une nouvelle facture, on lance la macro un nouvel onglet s'ajoute au classeur. |
|
|
00
|
|
|
#7 |
Lionel BellivierCabinet de gestion Inscription : octobre 2011 Messages : 32 ![]() |
Désolé, je suis nul en VBA et je n'y comprends rien.
Cependant, je précise que je ne veux pas créer une nouvelle feuille "facture" avec toutes les formules etc. Ce que je voudrais, c'est copier uniquement "les valeurs" d'une plage de saisie dans ma matrice facture (qui sera remise à blanc automatiquement après l'exécution de la macro pour faire place à une nouvelle saisie) vers une nouvelle feuille que la macro nommerait ensuite du nom de la date de la facture copiée ( cellule : Y18) Mais j'y pense, si la macro peut créer une feuille sur laquelle "ma plage" de cellules contenues dans "facture" sera copiée et que cette feuille sera renommeée..... il n'y a plus besoin de condition. Merci de votre aide, Amicalement, Lionel, Je vous précise que j'ai déjà dans mon classeur avec la feuille "facture", une feuille qui contient uniquement les cadres et les formats, prêts à recevoir les valeurs à archiver. J'ai nommé ma feuille facture "model". Effectivement, il l'a copié mais intégralement avec les formules des toutes les colonnes dont je n'ai plus besoin pour l'archive et qui prennent trop de place. Je voudrais que seule une plage de cellules de "facture" alias "model" soit copiée en valeur uniquement dans une feuille ( matrice ) qui est déjà préparée en formats pour recevoir les informations. Donc, c'est cette feuille de réception préparée que je voudrais qu'il dupplique dans un nouvel onglet à renommer et dans laquelle les infos des cellules de ma facture alias "model" à archiver seraient copiées. Merci pour votre aide. |
|
|
02
|
|
|
#8 |
Lionel BellivierCabinet de gestion Inscription : octobre 2011 Messages : 32 ![]() |
Je crois que j'ai trouvé une solution au problème.
Votre macro fonctione super et je vous en remercie vivement. Voilà ce que j'ai pensé : Je renomme ma feuille qui contient les format uniquement = model, Je créé une macro qui copie les valeurs dont j'ai besoin de ma feuille "facture", enfin, j'éxécute votre macro et super c'est bien. Cependant, il me reste des problèmes à résoudre : 1 - j'ai besoin d'inclure votre macro (en fait il y en a 2 ) dans ma macro, c'est à dire à un endroit précis. Puis-je mettre vos deux macros à la suite "dans la mienne" ? 2 - est-il possible de nommer automatiquement la nouvelle feuille crée par votre macro en lui donnant le nom du contenu d'une cellule de "modèl" qui est une date ? 3 - j'ai aussi une feuille "cumuls qui reprends la dernière ligne de chaque facture les valeurs suivantes : dates numéros H.T. RS 5 % RS 15 % TTC est-il possible d'écrire une macro à inclure ( toujours dans la mienne ) qui reporterait en dessous les unes des autres ces informations à chaque éxécution ? Oui, je sais, cela fait bcp et je ne sais quoi dire. En tout cas, Un grand merci pour votre. Amicalement, Lionel, |
|
|
00
|
|
|
#9 |
Lionel BellivierCabinet de gestion Inscription : octobre 2011 Messages : 32 ![]() |
J'ai trouvé pour mon problème N° 1 :
Il suffit d'écrire dans ma macro : Code :
Application.Run "'Sihab factures - Essai.xlsm'!MODEL_UNIQUE" |
|
|
00
|
|
|
#10 | ||
|
Membre du Club
![]() developpeur Inscription : octobre 2011 Messages : 85 ![]() |
Pour inclure ma macro dans la votre il suffit de l'appeler par:
a l'endroit ou vous souhaitez qu'elle se déclanche(à quel moment). Pour la 2 eme question c'est possible par: Code :
nvlle_feuille =range("facture!A1").value penser à changer la position A1 par la cellule de votre date Ah oui j'ai mit le nom de "model" en onglet mais il est possible de changer se parametre évidement. il faut remplacer tout les "model" par le de votre feuille de réception par exemple. Et pour la finir, si vous devez pecher d'autres infos il suffit de rajouter à la toute fin de mon code avant end sub: C'est détaillé afin de comprendre la logique(il y a plus simple) mais dans votre cas c'est mieux. Explication, je vais chercher 3 informations de la feuille cumulus dans les cellules A10,A11,12 et je les reportes dans la nouvelle feuille aux emplacements A20,A21,A22 Code :
|
||
|
|
00
|
|
|
#11 |
Lionel BellivierCabinet de gestion Inscription : octobre 2011 Messages : 32 ![]() |
Bonsoir,
Vous aurez passé une bonne partie de votre temps avec moi, comment vous en remercier ? d'autant que grace à vous, mon "truc" a super avancé. J'ai essayé de placer votre code pour renommer la feuille automatiquement mais je n'y arrive pas : Pour la 2 eme question c'est possible par: Code :
nvlle_feuille =range("facture!A1").value Je me l'a met où..... non pas là. Encore merci. |
|
|
00
|
|
|
#12 | ||
|
Membre du Club
![]() developpeur Inscription : octobre 2011 Messages : 85 ![]() |
A placer au début de mon code:
Code :
Mais maintenant que tu es sur la bonne voie et avec une bonne nuit de sommeil... la solution va te sembler évidente!
|
||
|
|
00
|
|
|
#13 |
Lionel BellivierCabinet de gestion Inscription : octobre 2011 Messages : 32 ![]() |
ça marche du tonnerre, vous êtes un Pro.
Si on me demande de vous confirmer dans votre essai..... je signe. Je vous souhaite aussi une très bonne nuit. Nul en informatique mais j'essaie d'y travailler, je ne peux vous apporter mon aide et j'en suis désolé. Cependant, sachez que je suis un éleveur d'oiseaux, que je fais de la génétique et que je suis classé champion et capacitaire pour toutes les espèces eixstantes sauf dangereuses. Je reproduis, j'apprivoise et j'élève complètement aussi bien des "becs droits" (canaris et autres) que les Psittacidaés (perroquets et perruches). Alors, si vous partagez cette passion ou que d'avanture vous avec besoin de mon aide dans ce domaine, elle vous est acquise et c'est avec un grand plaisir que j'interviendrai. Encore un grand merci, grâce à vous, j'ai un fichier qui fonctionne "super" et ça, jamais je n'aurais pu le faire. ![]() ![]() ![]() ![]() ![]() Amicalement, Lionel, |
|
|
00
|
|
|
#14 | |
Lionel BellivierCabinet de gestion Inscription : octobre 2011 Messages : 32 ![]() |
vous m'avez dit :
Citation:
Explication, je vais chercher 3 informations de la feuille cumulus dans les cellules A10,A11,12 et je les reportes dans la nouvelle feuille aux emplacements A20,A21,A22" Evidemment, je n'y arrive pas ! En fait, c'est l'inverse de ce que vous avez compris (je m'étais certainement mal expliqué) que je souhaite. En effet : Quand ma nouvelle feuille d'archive est créée (celle qui est nommée du contenu de ma cellule de la feuille "facture", je souhaiterais que les chiffres suivants ( date - n° - HT - T5% - T15%- TTC) soient reportés automatiquement en horizontal dans ma feuille "cumuls". Plus encore, ce serait génial que la macro, à chaque fois qu'elle s'éxécute pour une nouvelle archive, positionne ces infos sur chaque ligne en suivant dans ma feuille "cumuls. Oui, je sais, là peut-être que j'exagère car c'est déjà super.... alors ce serait parfait. ![]() Merci vraiment, Amicalement, Lionel, (éleveur amateur) |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com