Bonjour, alors si je remonte ce post qui commence à daté un peu, c'est que j'ai un peu prés la meme demande, sauf que je suis moins expérimenté.
Ma demande est :
Je possède 2 feuilles sur le même classeur qui s'appelle exactement Devis et facture.xlsm
les deux feuilles sont: FACTURE et SITUATION FACTURATION
Lorsque j'ai saisie une facture et que j'enregistre
J'aimerais qu'à chaque enregistrement, certaines cellule soit automatiquement copié sur SITUATION FACTURATION.
J'aimerais que :
Je doit faire ma facture F0098 en la sélectionnant dans mon menu déroulant, je veux que les cellules concernées soit recopier dans SITUATION FACTURATION à la suite de mon tableau (pour la F0098 la ligne correspondant est la 99)
DANS SITUATION FACTURATION la colonne A comporte les numéros de facture ex : A2 correspond à la facture F0001
A55 correspond à la F0054, donc prochaine facture à faire A99 pour la facture F0098
Voici ci dessous les cellules qui doivent être recopier a chaque enregistrement.
Nom du client en F11 sur FACTURE (liste déroulante qui s'appelle nomclient2) partent sur SITUATION FACTURATION en B99
adresse du client en F12 sur FACTURE partent sur SITUATION FACTURATION en C99
H32 sur FACTURE partent sur SITUATION FACTURATION en D99
H34 sur FACTURE partent sur SITUATION CLIENT en E99
D37 sur FACTURE partent sur SITUATION CLIENT en F99
MERCI mille fois et d'avance pour votre futur aide.
Re : copier/coller des cellules vers une autre feuille
Bonjour pouns94,
Deux messages ... et pas de réponse ... tu ne penses pas qu'avec un bout de fichier pour illustrer (sans données confidentielles), on aurait plus de chances de comprendre?
Dans l'autre fil que tu "remontes" ici, tu n'as rien trouvé d'exploitable, que tu pouvais adapter à ta situation?
Re : copier/coller des cellules vers une autre feuille
Re,
Des images, c'est gentil ... mais ça n'aide pas nécessairement!
Il me semble que je mettrais un bouton dans la feuille Facture qui lancerait la macro. Ci-dessous un bout de code qui copierait la valeur présente en F11 de la feuille Facture, vers l'autre feuille (dans laquelle les n° de factures existent déjà!?)
VB:
Sub sauvegarder()
Set liste = Sheets("SITUATION FACTURATION")
lig = Application.Match([D17], liste.[A:A], 0)
liste.Cells(lig, 2) = [F11]
End Sub
Après la recopie, les cellules au contenu variable seraient vidées dudit contenu.
Vois si ça correspond et si tu peux adapter pour la suite.
Encore une fois, sans fichier, comment pourrait-on répondre!? Tu as mis le code où? Tu l'as exécuté comment? Quel était le contenu du fichier?
Avant que tu ne répondes "je ne peux pas mettre mon classeur: il est trop lourd et contient des données qui ne peuvent être diffusées", précisons -comme chaque fois- qu'une version allégée du classeur suffit et que les noms peuvent être remplacés par une dizaine de noms bidons, les montants par des nombres fantaisistes et les adresses par ... rien du tout puisque, dans le cas qui nous occupe, celles-ci ne nous serviraient à rien!
NDLAbruti de service: Au-delà de cette limite votre ticket n'est plus valable!
Quand tu rédiges (ou réponds), sous le message, il y a un lien vers le "Mode avancé" ... dans ce nouveau mode, plus bas sur la page, un bouton "gérer les pièces jointes".
Attention à la taille des fichiers (mentionnée dans la fenêtre qui s'affichera à ce moment!)
Re : copier/coller des cellules vers une autre feuille
Merci de ta reactivité !!
Alors voici mon classeur.
Il y a 4 feuilles (FACTURE – fac (données pour les 2 menus déroulant) - CLIENT – SITUATION FACTURATION)
Dans facture :
F11 est un menu déroulant de la liste des clients se trouvant dans la feuille CLIENT
(Si je rentre un nouveau client dans la feuille CLIENT, je le retrouve aussitôt dans le menu déroulant qui se trouve en F11 sur FACTURE, et ca m’ajoute l’adresse code postal et ville) oui oui j’ai réussi à faire ca
D17 est à l’heure actuelle un menu déroulant où je dois sélectionner le numéro de facture. Liste des factures se trouve dans FAC
Dans SITUATION FACTURATION, chaque ligne correspond à une facture enregistrée.
Je souhaite donc qu’à chaque fois que j’enregistre une facture, les cellules de FACTURE qui m’intéresse (préciser dans SITUATION FACTURATION soit mise à chaque fois sur une ligne différente avec le bon numero de facture en A2 pour la F0001 A3 pour la F0002 et ainsi de suite.
A savoir que j’ai insérer la macro ci-dessous que je souhaite conserver
Macro : CTRL + F me créer une copie de la facture dans un nouveau classeur afin que je puisse la classer seule dans un dossier client.
Sub facture()'
' facture Macro'
' Touche de raccourci du clavier: Ctrl+f'
Sheets("FACTURE").Select
Sheets("FACTURE").Copy
Windows("Devis et Facture test.xlsm").Activate
End Sub
Merci d’avance encore pour votre aide.
Il y a une autre modification par rapport à ta demande initiale: les n° de factures figuraient déjà en Feuille "SITUATION FACTURATION" dans tes explications et tes captures d'écran ... ce n'est pas le cas dans le fichier que tu as fini par déposer ... Forcément, le début de solution que j'avais proposé ne saurait être adapté!
Je te proposerais bien de tester ce qui suit, mais la solution serait très partielle et pour qu'elle fonctionne de manière compréhensible, il faut d'abord supprimer les anciens n° de la feuille SITUATION FACTURATION en A114:A294.
Comme proposé plus tôt, ajoute un bouton à la feuille facture et colle les lignes ci-dessous dans la fenêtre de code de cette même feuille FACTURE:
VB:
Sub sauvegarder()
Set liste = Sheets("SITUATION FACTURATION")
lig = liste.Cells(Rows.Count, 1).End(xlUp).Row + 1 'n° de ligne de la première cellule non-vide en bas de colonne A de SITUATION FACTURATION
liste.Cells(lig, 1) = [D17] 'dans cette ligne, en colonne 1, on copie le contenu de D17
liste.Cells(lig, 2) = [F11]
liste.Cells(lig, 3) = [F4]
End Sub
Il serait -à mon sens- plus intéressant de générer le n° de facture au moment où tu valides la création de la facture, en reprenant le dernier n° utilisé et en y ajoutant 1 (parce que si tu fais une erreur en sélectionnant un n° dans la liste en D17 ... tu me sembles mal barré, puisque tu risques d'avoir 2 factures avec un n° identique et ça, j'ai beau ne rien connaître en gestion/compta, je crois savoir que ce n'est pas envisageable du tout ). Ce sujet ayant déjà été abordé à de nombreuses reprises, une petite recherche devrait te fournir une série de pistes.
Tu risques d'avoir un souci également avec tes RECHERCHEV en F12 et F13 ... pour t'en convaincre, saisis un simple 'x' en F11. Deux choses anormales se produisent: la validation ne détecte pas que ce nom ne figure pas dans la plage nommée "nomclient2" et une adresse apparaît, alors que le client n'existe pas ... Amazing, isn't it? (comme on dit outre-Manche)
La fonction RECHERCHEV possède 4 arguments ... ce n'est pas parce que le denier est facultatif que sa présence -ou non- ne change rien!
Re : copier/coller des cellules vers une autre feuille
Merci pour cette réponse, alors j'ai tout d'abord supprimé le menu déroulant des numéros de factures, j'ai aussi supprimé toutes les données dans SITUATION FACTURATION.
J'ai créé un bouton ACTIVE X sur la feuille FACTURE dont la macro est :
Private Sub CommandButton1_Click()
End Sub
Quoi mettre entre private Sub et End Sub pour que quand je clique dessus, il me rajoute + 1 en D17
Le code que tu m'as inscrit au dessus, je doit le mettre où? je doit modifier des choses dans ce code?
Ben tu recopies ce qui se trouve entre le Sub et le End Sub chez moi, entre le Sub et le End Sub chez toi.
Pour que le bouton fasse "+1 au dernier n° de facture" teste cette adaptation du code précédent:
VB:
Set liste = Sheets("SITUATION FACTURATION")
lig = liste.Cells(Rows.Count, 1).End(xlUp).Row + 1 'n° de ligne de la prmière cellule non-vide en colonne A de SITUATION FACTURATION
[D17] = "F" & Format(Sheets("fac").[H1] + 1, "0000")
liste.Cells(lig, 1) = "F" & Format(Sheets("fac").[H1] + 1, "0000")
Sheets("fac").[H1] = Sheets("fac").[H1] + 1
liste.Cells(lig, 2) = [F11]
liste.Cells(lig, 3) = [F4]
Toujours à coller entre ton sub CommandBButton_Click et son End Sub (en vérifiant que le code figure bien dans la fenêtre de code de la feuille FACTURE).
Par ailleurs il ne devra rien y avoir au départ en H1 de la feuille FAC et il ne faudra jamais effacer ni modifier son contenu par la suite!
Comme tu le vois, c'est "basique". Une fois encore, tu devrais prendre le temps de faire une recherche!