Code VBA et bug!

rominet72

XLDnaute Nouveau
Bonjour

J'ai construit mon système de gestion de devis et facture en programmant du code VBA.
Certaines choses fonctionnent bien et d'autres pas!
J'ai beau cherché, je ne vois pas ce qui cloche, et à plusieurs endroits en plus.
Je démarre mon activité d'indépendant et cet outil que j'élabore seul va m'être très utile.
Une aide serait la bienvenue, svp. merci

Dans le fichier excel joint, il y a trois classeurs.
G_facture et G_Devis sont les gabarits pour la mise en page, utilisés grâce aux boutons associés.
BDD est le classeur où je saisi mes lignes qui vont "remplir" mon devis.

Ce qui marche:
Transfert des lignes de BDD vers un devis. Devis OK

Ce qui ne marche pas:

- La transformation du devis en facture, code erreur 438 . Le classeur Stock_facture appelé pour le stockage s'ouvre bien par contre. Il se trouve dans la même arborescence.

- L'envoi du devis vers le stockage. Message Box: Nom ambigu détecté

- Autre chose ? :)
 

Pièces jointes

  • Devis_Facture - Copie.xlsm
    69.3 KB · Affichages: 54
  • Devis_Facture - Copie.xlsm
    69.3 KB · Affichages: 66
  • Devis_Facture - Copie.xlsm
    69.3 KB · Affichages: 64

Paritec

XLDnaute Barbatruc
Re : Code VBA et bug!

Bonjour Rominet72 le forum
bon alors tu commentes pas mal mais tu ferais mieux de ne rien oublier !!!!!!!
j'ai modifié le code pour avoir le dossier de stockage facture dans le même dossier que ton fichier Devis-Facture
et maintenant quand tu écris after:= ..........sheet(1) n'oublie pas le S à Sheets
Une dernière remarque tu devrais aussi à l'ouverture de la macro définir le numligne pour pouvoir renommer ta feuille !!
Car là dans le transfert devis facture tu dois bien renommer avec le numéro de facture, du moins je le suppose?
Voilà mon premier constat
Et alors une dernière chose pour te couper ton élan, tu vas ajouter une feuille par facture ??? et tu penses que ton fichier va être fiable combien de temps ???? à mon avis tes factures et tes devis tu ferais mieux de les conserver dans une base de données et dans le même classeur, mais sous forme de 1 facture = 1 ligne
enfin c'est mon avis.
a+
Papou:)

Code:
Public Sub Facture()
    Dim nbfeuilles As Byte, adr$, wbks As Workbook, num&
    nbfeuilles = ThisWorkbook.Worksheets.Count
    Dim objF_fiche As Worksheet
    adr = ThisWorkbook.Path
    numligne = 10  ' là j'ai mis 10 pour avoir une valeur
    num = Sheets("BDD").Cells(numligne, 1)
    Set objF_fiche = ActiveSheet
    ' Workbooks.Open Filename:= _
      ' "C:\1-Professionnel\Gestion Devis Facture\Stock_Facture.xlsm"
    Set wbks = Workbooks.Open(adr & "\Stock_Facture.xlsm")
    objF_fiche.Copy After:=wbks.Sheets(Sheets.Count)
    'Renommer la feuille dupliquée destination avec numéro de commande sélectionnée
    ActiveSheet.Name = "FAC2015-" & num
    'Efface 2 boutons Macro de la feuille facture enregistrée
    ActiveSheet.Shapes("Bouton 3").Delete
    ActiveSheet.Shapes("Bouton 4").Delete
    Application.DisplayAlerts = 0
    wbks.Close 1
    Application.DisplayAlerts = 1
    MsgBox "Facture " & "FAC2015-" & num & "  Enregistrée", , "Facture Enregistrée"
End Sub
 
Dernière édition:

rominet72

XLDnaute Nouveau
Re : Code VBA et bug!

Tout d'abord merci pour cette réponse hyper rapide!
Je suis un peu néophyte dans ce domaine, je suis donc un tout petit peu fier du code déjà écrit même si cela ne fonctionne pas tellement comme voulu.

- J'ai intégré la modification et compris les modifications, super! Par contre, si la transformation se passe bien avec fermeture du fichier Stock_facture, je vois qu'en cellule E4 de la facture, le DEV2015-xx ne devient pas FAC2015-xx. Est-ce dû à numligne = 10 ?

- Mon problème de transfert de devis vers Stock_devis doit être dû au fait que je n'arrive pas à affecter la macro correspondante au bouton. En effet, dans la liste de choix des macros disponibles, RIEN de ce que j'ai besoin, alors que cette macro est bien présente dans les modules, elle se nomme: "transfertBDDstockDevis". Etrange non?

Pour ce qui est du stockage, je suis preneur de solution comme un base de données proposée mais là c'est la grande inconnue pour moi. Mon seul but est d'avoir un stock disponible au cas où j'aurai besoin de sortir des devis ou factures en cas de relance d'un client ou de mon comptable.

En tout cas cela avance, c'est :cool:
 
Dernière édition:

Paritec

XLDnaute Barbatruc
Re : Code VBA et bug!

Re Rominet le forum
avec fermeture du fichier Stock_facture, je vois qu'en cellule E4 de la facture, le DEV2015-xx ne devient pas FAC2015-xx. Est-ce dû à numligne = 10 ?
Bah alors toi t'es un drôle !!!! pour que la cellule E4 devienne Fac2015-xx il faut lui dire peut-être !!!!
et dans ton code tu ne l'avais pas mis, alors excuses mais je ne peux pas deviner que tu oublies une ligne sur deux
tu ajoutes
Code:
 ActiveSheet.Name = "FAC2015-" & num
activesheet.cells(4,5)="FAC2015-" & num
a+
Papou:)
 

Paritec

XLDnaute Barbatruc
Re : Code VBA et bug!

Re rominet72 le forum
si tu veux une ébauche il faut me donner le nombre de colonne de ta feuille Client ou mieux tu passes la feuille clients avec une dizaine de clients mini STP
et je te pond un truc
a+
Papou:)
 

rominet72

XLDnaute Nouveau
Re : Code VBA et bug!

Merci Papou!

J'ai ajouté les lignes dans le module transfertDEVfacture mais rien ne se passe pour la transformation de DEV2015-xx en FAC2015-xx dans le cellule E4.

Je vais préparer un fichier client avec le bon nombre de colonnes.

bon samedi
@+
 

rominet72

XLDnaute Nouveau
Re : Code VBA et bug!

Bon, après quelques heures au soleil à effectuer des travaux manuels, j'ai repris mon PC et résolu tous mes problèmes :eek:

Il me reste un question:

- Comment supprimer le classeur " DEV2015-xx" après que celui ait été transféré vers Stock_Devis, stp?
J'ai pensé à ce code mais j'ai un doute...

Windows("Devis_Facture.xlsm").Activate
Sheets("DEV2015-" & num).Select
Delete

Je prépare la liste demandée

Merci
 

Paritec

XLDnaute Barbatruc
Re : Code VBA et bug!

Bonsoir Rominet72 le forum
si cela ne marche pas c’est que tu n'as pas collé les lignes au bon endroit
bref je modifierai sur la prochaine version mais j’attends la feuille clients
a+
Papou:)
 

rominet72

XLDnaute Nouveau
Re : Code VBA et bug!

Salut Papou

Tout est ok pour le code VBA, ça marche comme voulu! super!

Je te joins un classeur simple avec 13 lignes et surtout les colonnes qui m'intéressent.
A toi de jouer :)

Merci
 

Pièces jointes

  • Classeur2.xlsx
    9.8 KB · Affichages: 49
  • Classeur2.xlsx
    9.8 KB · Affichages: 56
  • Classeur2.xlsx
    9.8 KB · Affichages: 38

Paritec

XLDnaute Barbatruc
Re : Code VBA et bug!

Bonjour Rominet,
Ok bien reçu mais tu m'as passé un fichier qui n'est pas ton fichier réél et il y a 90% de chance que tu ne soit pas capable de l'adapter après, mais moi je fais comme tu veux, de plus tu m'as mis une feuille client mais les devis et les factures c'est à moi de mettre les feuilles !!!!!!!!!!!!!!!!!!!!!!!!!!!
a+
Papou:)
 

rominet72

XLDnaute Nouveau
Re : Code VBA et bug!

Oups.... voici le fichier complet avec le code VBA fonctionnel
Merci
 

Pièces jointes

  • Devis_Facture - Copie.xlsm
    75.6 KB · Affichages: 39
  • Devis_Facture - Copie.xlsm
    75.6 KB · Affichages: 50
  • Devis_Facture - Copie.xlsm
    75.6 KB · Affichages: 53

Paritec

XLDnaute Barbatruc
Re : Code VBA et bug!

Re bonjour Rominet72 le forum
ton ébauche comme promis
voilà tu mets le fichier sur ton bureau tu l'ouvres et tu testes et tu me redis
(mais rien à voir avec ta manière de faire c'est sur)
a+
Papou:)
 

Pièces jointes

  • Rominet V1.xlsm
    64.9 KB · Affichages: 34

rominet72

XLDnaute Nouveau
Re : Code VBA et bug!

Comme dirait ma fille de 10 ans, c'est de la balle!!!!!:)

J'avoue la méthode totalement différente, mais c'est le résultat qui compte!
Je suis conquis et prêt à utiliser cette méthode, bravo et merci.

Mais j'aimerai aussi faire évoluer mes connaissances en VBA. Il y a possibilité de lire le code de ce qui est fait pour comprendre ou bien cela va rester caché... ?
 

Paritec

XLDnaute Barbatruc
Re : Code VBA et bug!

Bonjour Rominet72 le forum
Mais j'aimerai aussi faire évoluer mes connaissances en VBA. Il y a possibilité de lire le code de ce qui est fait pour comprendre ou bien cela va rester caché... ?
Lire le code, c'est simple tu vas dans VBA et tu regardes dans les userforms, il n'y a rien de caché.
a+
Papou:)
 

Statistiques des forums

Discussions
312 497
Messages
2 088 994
Membres
104 000
dernier inscrit
dinelcia