XL pour MAC Macro qui traite uniquement les données sélectionnées

Valter

XLDnaute Occasionnel
Bonjour, tout est dans le titre, je voudrais que ma macro ne prenne en compte que ma sélection qui peut être differente à chaque fois, je joins un petit fichier d'exemple... merci pour votre aide
 

Pièces jointes

  • Essai.xlsx
    31.6 KB · Affichages: 59

Valter

XLDnaute Occasionnel
Bonjour, n'ayant pas réussi à modifier la macro pour que elle fonctionne aussi dans une situation un peu differente, je joins un nouveau fichier d'exemple ou les données à transférer par macro dans un autre onglet, ne sont pas contenues dans des cellules adjacentes.... cela doit ressembler a la macro de l'essai1 mais avec quelques variantes....
 

Pièces jointes

  • essai2.xlsm
    38.2 KB · Affichages: 47

Jacky67

XLDnaute Barbatruc
Bonjour, n'ayant pas réussi à modifier la macro pour que elle fonctionne aussi dans une situation un peu differente, je joins un nouveau fichier d'exemple ou les données à transférer par macro dans un autre onglet, ne sont pas contenues dans des cellules adjacentes.... cela doit ressembler a la macro de l'essai1 mais avec quelques variantes....
RE..
Tout se passe par la sélection dans la cellule D7 de la feuille facture
Il y a 2 plages nommées et une liste de validation
 

Pièces jointes

  • essai2.xlsm
    39.8 KB · Affichages: 49

Valter

XLDnaute Occasionnel
bonsoir le forum, et merci Jack67 pour ta réponse, parfois il n'est pas facile d'expliquer ce que l'on désire exactement, au départ on poste un petit exemple en pensant pouvoir ensuite modifier le formule à son gré, mais ce n'est pas toujours facile, ce que je cherche à faire est de prendre des données d'un client en les choisissant par une sélection des cellules, et les envoyer dans un masque de facturation qui se trouve dans un autre onglet, ceci permettant d'automatiser les tâches... bien évidemment mon petit programme de facturation peut fonctionner d'une maniere indépendante en remplissant manuellement les informations....Alors pour me faire comprendre j'ai pris le fichier original que j'ai un peu simplifié en y ajoutant les explications necessaire en espérant arriver a me faire comprendre..... mes chers amis du forum, je vous remercie d'avance pour votre patience....
 

Pièces jointes

  • Facturation.xlsm
    320 KB · Affichages: 52

Jacky67

XLDnaute Barbatruc
bonsoir le forum, et merci Jack67 pour ta réponse, parfois il n'est pas facile d'expliquer ce que l'on désire exactement, au départ on poste un petit exemple en pensant pouvoir ensuite modifier le formule à son gré, mais ce n'est pas toujours facile, ce que je cherche à faire est de prendre des données d'un client en les choisissant par une sélection des cellules, et les envoyer dans un masque de facturation qui se trouve dans un autre onglet, ceci permettant d'automatiser les tâches... bien évidemment mon petit programme de facturation peut fonctionner d'une maniere indépendante en remplissant manuellement les informations....Alors pour me faire comprendre j'ai pris le fichier original que j'ai un peu simplifié en y ajoutant les explications necessaire en espérant arriver a me faire comprendre..... mes chers amis du forum, je vous remercie d'avance pour votre patience....
RE...
Voici la macro qui attribuée à la flèche verte de la feuille "Clients" transfert le quantité et son libellé vers la feuille facture.
VB:
Sub VersFacture()
With Sheets("Facture")
If Not Intersect(ActiveCell, [m5:q504]) Is Nothing Then
.[b515] = Cells(ActiveCell.Row, "Q")
.[w515] = Cells(ActiveCell.Row, "M")
End If
End With
End Sub
J'avoue que j'ai du mal a comprendre l'organisation de ce classeur.
Il y a une grande quantité de lignes masquées en feuille facture et plusieurs cellules qui y font référence
Faut-il les garder???
Faut il ne faire référence qu'a la feuille "Clients" pour remplir la feuille "facture" ??
Si oui , c'est une ligne complète dans la feuille clients : par commande ET par client ??
Il y a aussi beaucoup de cellules fusionnées, ce qui ne facilite aucunement le codage.
Comment se fait la saisie des commandes ??

La logique pour faire un bon début serait:
Une feuille Client avec tous les renseignements:
Nom , adresse, etc.
Une feuille avec la liste des produits et leur prix.
Le tout avec une ligne de titre et sans ligne ou colonne vides ou fusionnées
Et sur la feuille facture faire référence à ces deux feuilles avec la quantité les taxes etc...
Ne pas mélanger une feuille base de données avec des objets inutiles avec une feuille de présentation finale.

Cela peut paraître moralisateur, mais si tu veux réellement faire un bon travail, Amha , il faudra passer par là.
A toi de voir.
 
Dernière édition:

Valter

XLDnaute Occasionnel
Bonjour le forum, bonjour Jack67, voila quelques explications, le fichier d'exemple est un peu different de l'original, j'ai enlevé pas mal de choses et formules car ce n'est qu' un fichier pour l'exemple... ce petit programme de facturation est fait pour être utilisé en suisse, selon le domicile du client la facture s'affiche soit en allemand, en français ou en italien, d'ou l'explication de la multitude de données dans des colonnes masquées, ce sont en effet les textes en trois langues qui seront choisis selon le domicile du client, la langue de facturation se détermine dans la liste de clients, il y a une colonne ou on met la langue désiré. La multitude de cellule fusionnée est due par le fait que nous avons la facture sur les 2/3 supérieurs de la feuille A4, le 1/3 inférieur est réservé au bulletin de versement, et c'est la tout le problème, les chiffres qui composent le total de la facture doivent chacun tomber exactement dans un cadre, c'est pour cela que j'ai composé ma facture avec une multitude de petites colonnes, ce qui me permet de faire tomber chaque chiffre à la bonne place, mais ceci genere un autre problème, par exemple la date de la facture, je la colle par macro à l'endroit prévu
 

Valter

XLDnaute Occasionnel
Bonjour le forum, bonjour Jacky67, voila quelques explications, le fichier d'exemple est un peu different de l'original, j'ai enlevé pas mal de choses et formules car ce n'est qu' un fichier pour l'exemple, de ce fait il est difficile de le comprendre si on ne l'as pas fait soi même... ce petit programme de facturation est fait pour être utilisé en suisse, selon le domicile du client la facture s'affiche soit en allemand, en français ou en italien, d'ou l'explication de la multitude de données dans des colonnes masquées, ce sont en effet les textes en trois langues qui seront choisis avec la fonction RECHERCHEV, selon le domicile du client, la langue de facturation se détermine dans la liste de clients, La multitude de cellule fusionnée est due par le fait que nous avons la facture sur les 2/3 supérieurs de la feuille A4, le 1/3 inférieur est réservé au bulletin de versement, et c'est la tout le problème, les chiffres qui composent le total de la facture doivent chacun tomber d'une manière séparée l'un avec l'autre avec précision dans un cadre prévu a cet effet, c'est pour cela que j'ai composé ma facture avec une multitude de petites colonnes, ce qui me permet de faire tomber chaque chiffre à la bonne place en travaillant sur la largeur de colonne, voila donc pourquoi mon programme ressemble à une usine à gaz…. mais je vous assure que il fonctionne parfaitement bien…. en en trois langues…

Merci donc pour la macro, je n’ai pas fait tous les essais, mais j’ai constaté qu’ elle me colle bien les grammes ainsi que la description du produit à la bonne place, mais pas encore le nom du client, je vais l’étudier et si j’arrive à y comprendre quelque chose, je vais essayer de la modifier en conséquence. Merci Jacky67 pour ta précieuse aide… certainement j'aurai encore des questions...
 

Jacky67

XLDnaute Barbatruc
Merci donc pour la macro, je n’ai pas fait tous les essais, mais j’ai constaté qu’ elle me colle bien les grammes ainsi que la description du produit à la bonne place, mais pas encore le nom du client
Code:
Sub VersFacture()
With Sheets("Facture")
If Not Intersect(ActiveCell, [m5:q504]) Is Nothing Then
.[b515] = Cells(ActiveCell.Row, "Q")
.[w515] = Cells(ActiveCell.Row, "M")
.[B5] = Cells(ActiveCell.Row, "AN")
End If
End With
End Sub
 
Dernière édition:

Valter

XLDnaute Occasionnel
genial jacky67... la macro fonctionne super bien, j'en suis ravi...merci pour ton aide....... j'ai fait quelques ajouts dans les limites de mes possibilités comme par exemple de coller la date du jour ainsi que effacer un éventuel prix resté par mégarde dans le masque de facturation, par contre ce que je n'ai pas réussi à faire, malgré divers essais, c'est de changer la couler des cellules qui ont déjà été collées vers la facture, ceci serait très utile pour voir ce qui a déjà été traite et ce qui reste encore à faire... je re-joins à nouveau mon document facturation, ou l'on peut voir la macro à l'oeuvre, avec une petite explication dans la feuille "Clients" sur fond jaune, pour voir si ce que j'aimerai faire serait dans le domaine du possible, ou si éventuellement il y a une autre solution pour changer la couleur des cellules une fois l'opération effectuée....
 

Pièces jointes

  • Facturation.xlsm
    321.7 KB · Affichages: 53

Discussions similaires

Réponses
2
Affichages
198

Statistiques des forums

Discussions
314 450
Messages
2 109 721
Membres
110 551
dernier inscrit
Khyolyanna