Je suis novice sur excel j'ai besoin de votre aide !
J'ai besoin d'un code pour réaliser une macro (simple je pense pour ceux qui maitrisent le sujet), je vous explique :
J'ai 2 feuilles, DEVIS et PROJETS, et 1 tableau similaire sur chaque feuille
Sur la feuille DEVIS, j'ai donc un tableau qui répertorie tout un tas de demandes de clients. Mon but est de faire apparaître sur la feuille PROJET les demandes de devis qui se concrétisent en commande.
Ainsi j'aimerais pouvoir copier/coller les 6 première cellules de chaque ligne du tableau de la feuille DEVIS, si la 7ème cellule = "commande reçue"
Illustration brut : Sur feuille "DEVIS" si H4 = "Commande reçue" --> copier "B4:G4" --> coller sur feuille "Projet" en "B4:G4"
Et ainsi de suite pour chaque ligne 5,6,7,8...
J'espère que je suis assez clair, un grand merci par avance pour votre aide :)
C'est excellent ce que tu me proposes là !
Il y a juste un détail, les cellules sont collées en bas de mon tableau, le top serait qu'elles commencent dès la première ligne du tableau (ligne 4)
premier fichier
Tentative 1. Essaies de supprimer toutes les lignes formatées après la ligne 4 avant d'exécuter
Tentative 2. Dans le code de la procedure Transfer (Module 1), tu mets un point d'arrêt devant la ligne (dans la marge un gros point marron doit apparaitre)
liFP = Sheets(FP).Range(codeb & Rows.Count).End(xlUp).Row + 1
Ensuite tu lances un transfert, la macro va s'arrêter sur cette ligne. F8 pour passer à la ligne suivante, tu passes le curseur sur la variable liFP, c'est la première ligne dispo tu dis ...
deuxième fichier, normal, tu n'as pas copié le code du Module 1
1. Supprimes tes deux modules au nom bizarre
2. Insertion/Module, ça crée un Module 1
3. colles tout le code de mon Module 1
C'est ce que j'ai fait dans un premier temps mais en fait mon problème est plus complexe.
En appliquant cette fonction à chaque cellule de mon tableau cela me permet de copier/coller les demande clients qui se sont convertis en commandes.
Cependant ça me fait un tableau avec plein de lignes vides car toutes les demandes de mes clients ne se transforment pas forcement en commande.
Il me faudrait donc en plus de cette formule, une macro qui me permette de supprimer les lignes vides du tableau en feuille "PROJETS" automatiquement... mais ça me paraît un peu dingue !
Sinon il faut que j'actualise le tri de mon tableau après chaque commande et ce n'est pas ce que je veux, il me faut un outil automatisé :p
J'espère que ce que je veux réaliser est possible ...
Quand on parle de macro, il est nécessaire d'y voir clair ...
Peux tu envoyer un bout de ton fichier anonymisé, mais avec la même structure que l'original,sur cjoint.com et joindre le lien obtenu à ton prochain message. N'oublies pas d'y ajouter des explications et des exemples de résultat attendu
1) Tu vas dans https://www.cjoint.com/ 2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse tu fais "Coller".
Pas très clair, deux façons de voir les choses au moins ...
Option 1.
Les données concernant un devis doivent se trouver exactement dans la même ligne dans les deux feuilles. Dans la feuille PROJET, on laisse les formules et on masque les lignes vides et on les affiche dès que "Commande reçue"
Option 2.
Chaque fois que "Commande reçue", on ajoute les données dans la feuille PROJET, à la suite des précédentes. Il n'y aura plus de formule ni de ligne vide dans la feuille PROJET.
Il y a juste un détail, les cellules sont collées en bas de mon tableau, le top serait qu'elles commencent dès la première ligne du tableau (ligne 4) Avec le fichier que je t'ai envoyé ?, parce que chez moi, le transfert commence bien en ligne 4
Si c'est avec ton fichier, vois si tu n'as pas oublié de vider la colonne B de la feuille PROJETS
Oui sur ton fichier, je n'ai touché à rien pourtant
Et en mettant le code sur le mien, ça me dis "erreur de compilation, Variable non définie"
Et : "Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)" est surligné.
(Je précise que j'ai bien vidé mes colonnes)
Tu veux que je partage de nouveau mon fichier ou tu penses savoir d'où vient l'erreur ?
Oui sur ton fichier, je n'ai touché à rien pourtant Je ne comprends pas, voilà ce que j'obtiens après un clic-clic sur la première Commande reçue
http://www.cjoint.com/c/GGvo7fDLhdB
j'ai mis une formule en A1 qui compte le nombre de valeurs en colonne B, il doit y avoir 1 si aucun transfert effectué
Que dois-je changer dans le code si je veux que la colonne à valider soit la colonne J (celle avec "commande validée" etc) ??? Si tu parles de la cellule qui lance la macro par un double-clic
Tu vas dans Module 1, en début de code, tu as des constantes qui décrivent ta configuration, que tu peux changer bien sûr (les placer ici, permet en cas de modification de ne pas toucher aux codes des procédures)
Dans la ligne , la constante cocliFD est la colonne attachée à ce clic-clic
Public Const cocliFD As String * 1 = "B"
Tu changes la valeur "B" par "J"
Il y a juste un détail, les cellules sont collées en bas de mon tableau, le top serait qu'elles commencent dès la première ligne du tableau (ligne 4)
Mais je pense que c'est une manip' rapide ?
Un grand merci !