Re :RESOLU cbxliescpville de dranreb a intégré dans classeur clients?? MERCI DRANREB

Dranreb

XLDnaute Barbatruc
Re : cbxliescpville de dranreb a intégré dans classeur clients??

Pas compris le "qui ne réflète pas la réalité du fichier". Un onglet par base de donnée impliquée, oui. Quant à des images de factures et autres pièces, il ne faut surtout pas en empiler des tonnes dans plusieurs onglets: Un seul par espèce de document, à reconstituer selon chaque besoin d'impression. Éventuellement les garder en PDF.
 

grisan29

XLDnaute Accro
Re : cbxliescpville de dranreb a intégré dans classeur clients??

re
donc voici le classeur devisfacture avec a ses cotés l'onglet clients
mes factures ou devis sont enregistrer chacun dans un classeur spécifique et le pdf l'est également en même temps dans ses propres dossiers par ce code
Code:
  CheminPDF = CheminXL & "PDF\"
  CheminXL = CheminXL & "\"
  
  ' Sauvegarder le classeur actif dans le chemin et le nom determiné
  ' FileFormat:=xlExcel8,
  ActiveWorkbook.SaveAs Filename:=DIR_WORKSPACE & CheminXL & NomFicXL, _
                         Password:="", WriteResPassword:="", _
                        ReadOnlyRecommended:=False, CreateBackup:=False
  
 ' SetButtonsVisible False
  
  ' Exporter en PDF
  ActiveWorkbook.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=DIR_WORKSPACE & CheminPDF & NomFicPDF, Quality:= _
                                                 xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
                                                 OpenAfterPublish:=False
Pascal
voici un apercu du dossier sous c:
 

Fichiers joints

Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : cbxliescpville de dranreb a intégré dans classeur clients??

S'appelle Feuil1, pour VBA, celui là, pas Fclient ? (sur le modèle des autres, je parle, parce que moi je mettrais FClients)
Quoi qu'il en soit, pour le moment l'Uclient marche en mettant :
VB:
CL.Plage Feuil1.[B2]
 

grisan29

XLDnaute Accro
Re : cbxliescpville de dranreb a intégré dans classeur clients??

re
donc il faudra que je laisse la feuille client comme onglet a coté de celle de factures et listeville en cachée

elle n'a pas été renommée car je l'ai sortie d'un autre classeur

Pascal
 

Dranreb

XLDnaute Barbatruc
Re : cbxliescpville de dranreb a intégré dans classeur clients??

C'est cela. Et si vous la renommez, il faudra bien sûr spécifier le nouveau nom au lieu de Feuil1 au CL.Plage.
 

grisan29

XLDnaute Accro
Re : cbxliescpville de dranreb a intégré dans classeur clients??

re
d'accord alors comment modifier les lignes concernées dans le module m_constante pour ne pas avoir de bug
Code:
Public Const DIR_WORKSPACE As String = "C:\facturation"
Public Const DIR_DEVIS As String = "\Devis"
Public Const DIR_FACT  As String = "\Facture"
Public Const DIR_FACT_SAV As String = "\Facturesav"
Public Const DIR_FACT_ACC As String = "\Factureacompte"

Public Const WB_BASE_ATTESTATION_7PERCENT As String = DIR_WORKSPACE & "\base\attest et courrier.xls"
Public Const WB_BASE_ARTICLES As String = DIR_WORKSPACE & "\base\article.xlsx"
[U]Public Const WB_BASE_CLIENTS As String = DIR_WORKSPACE & "\base\clients.xlsx"[/U]
Public Const WB_FACTURES_LISTE As String = DIR_WORKSPACE & "\ListeDevis_Facture.xlsm"

Public Const WS_FACTURE As String = "Facture"
[U]Public Const WS_CLIENTS As String = "Clients"[/U]
Public Const WS_ARTICLES As String = "Articles"
Public Const WS_PAIEMENT As String = "Paiement"

Public Const NB_LIGNE_ARTICLE_FIGE As Integer = 8

Enum TypeDeDoc
    DOC_FACT = 0
    DOC_FACT_ACC = 1
    DOC_FACT_SAV = 2
    DOC_DEVIS = 3
End Enum

[U]Public Type InfoClient[/U]
    nom As String
    Prenom As String
    attention As String
    adresse As String
    complement As String
    ville As String
    cp As String
End Type

Public Type InfoPaiement
    Typ As TypeDeDoc
    Mode As String
    banque As String
    numChequeVir As String
End Type
Pascal
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : cbxliescpville de dranreb a intégré dans classeur clients??

Je ne sais pas parce que je ne sais pas à quoi servent ces constantes. Et je soupçonne quelque chose qui ne m'est pas familier. On ne peut pas être calé dans toutes les domaines de possibilités d'Excel.

Mais à priori :
VB:
Public Const WB_BASE_CLIENTS As String = ThisWorkbook.FullName
Non. On ne peut pas. Mais une variable Public pourrait être initialisée comme ça. Ou utiliser ThisWorkbook.FullName au lieu de WB_BASE_CLIENTS
 
Dernière édition:

grisan29

XLDnaute Accro
Re : cbxliescpville de dranreb a intégré dans classeur clients??

re
j'ai essayer,en changeant le nom, l'usf s'ouvre, les combo et textbox se charge correctement, mais rien ne s'ajoute sur la feuille et pourtant
Code:
Private Sub UserForm_Initialize()
Dim I As Integer
Set CLCPVil = New ComboBoxLiés
'CLCPVil.Plage Feuil3.[A2]
CLCPVil.Plage Fcpville.[A2]
CLCPVil.CouleurSympa &H80000005, &HDDFF&, &H80000005, &H80000005
CLCPVil.Add Me.CBcp, "B"
CLCPVil.Add Me.CBville, "C"
ExécutionIntempestive = True
CLCPVil.Actualiser
ExécutionIntempestive = False
Set CL = New ComboBoxLiés
CL.CouleurSympa
CL.Plage Fclient.[B2] ' feuil4=feuille clients dans la base

CL.Add Me.CBcivil, "C"
CL.Add Me.CBnom, "D"
CL.Add Me.CBprenom, "E"
CL.Actualiser
End Sub[CODE]
et 
[CODE]Private Sub BtnValider_Click()
If BtnValider.Caption = "Devis" Then
   Dim VCol(1 To 6, 1 To 1), L As Long
   Mettre VCol, L, VLgn(1, 3) & " " & VLgn(1, 4)
   Mettre VCol, L, VLgn(1, 5)
   Mettre VCol, L, VLgn(1, 6), Devant:="À l'attention de :  "
   Mettre VCol, L, VLgn(1, 7)
   Mettre VCol, L, VLgn(1, 8)
   Mettre VCol, L, VLgn(1, 9) & " " & VLgn(1, 10)
     Fclient.[A1:A6].Value = VCol
Else
   If LCou = 0 Then
      LCou = CL.PlgTablo.Rows.Count
      With CL.PlgTablo.Rows(LCou): .Copy: .Insert: End With
      LCou = LCou + 1: End If
   VLgn(1, 6) = Me.TBattention.Text
   VLgn(1, 7) = Me.TBadresse.Text
   VLgn(1, 8) = Me.TBcomplement.Text
   VLgn(1, 9) = Me.CBcp.Text
   VLgn(1, 10) = Me.CBville.Text
   VLgn(1, 11) = Me.TBtele.Text
   VLgn(1, 12) = Me.TBport.Text
   VLgn(1, 13) = Me.TBfax.Text
   VLgn(1, 14) = Me.TBmail.Text
   CL.PlgTablo.Rows(LCou).Resize(, 14).Value = VLgn
   CL.Actualiser
   HabiliterBoutons
   End If
End Sub
et voici l'apercu

Pascal
 

Fichiers joints

grisan29

XLDnaute Accro
Re : cbxliescpville de dranreb a intégré dans classeur clients??

en mettant
Code:
Public Const WB_BASE_CLIENTS As String = ThisWorkbook.FullName
au lieu de
Code:
Public Const WB_BASE_CLIENTS As String = DIR_WORKSPACE & "\base\clients.xlsx"
il y a un bug a fullname qui n'est pas une constante requise
 

Dranreb

XLDnaute Barbatruc
Re : cbxliescpville de dranreb a intégré dans classeur clients??

mais rien ne s'ajoute sur la feuille
Si ça s'ajoute bien. Supprimez maintenant simplement un coup, manuellement, les colonnes P:Q puis les lignes 14:112.
fullname qui n'est pas une constante requise
Oui, vu moi même et signalé tout de suite derrière au #147

Rectification: supprimez jusqu'à la ligne 164: il y reste aussi des vestiges en colonne A.
 
Dernière édition:

grisan29

XLDnaute Accro
Re : cbxliescpville de dranreb a intégré dans classeur clients??

re dranreb
maintenant tout s'ajoute sur la feuille car j'ai changé tout bêtement de nom de feuille, j'avais mis Fclient au lieu de Fdevisfacture
je vais essayer d'arranger tous cela sur le fichier que j'utilise afin de créer un devis pour voir si cela est bon mais il n'y a pas de raison

Pascal
 

grisan29

XLDnaute Accro
Re : cbxliescpville de dranreb a intégré dans classeur clients??

bonsoir dranreb
j'ai toujours le même souci qu'avec le multipage
c'est a dire que l'ajout du client se fait très bien mais c'est le code qui est dans l'enregistrement dans la base qui n'officie pas bien,
moi qui pensais que cela venait de l'ajout sur feuille a cause de "a l'attention de:" et " complément " eh ben je me suis trompé
maintenant qu'il se mette correctement grâce a toi, le transfert ne se fait pas mieux dans le classeur liste devis et facture par ce code
Code:
Public Sub GetClientInfos(client As InfoClient)
            ' repère un décalage dans les lignes si l'adresse contient "à l'attention de"
            Dim offset As Integer: offset = IIf(IsAttentionDe, 0, -1)
            Dim offset1 As Integer: offset1 = IIf(IsCommentaireDe, 0, -1)
            offset = offset + offset1
            With ThisWorkbook.Sheets(WS_FACTURE).Range("DOC_CLIENT")
             If IsAttentionDe = True Then
                client.cp = Split(.offset(5 + offset))(0)
                client.Nom = .Value
                client.Prenom = .offset(1).Value
                client.Attention = .offset(2).Value
                client.adresse = .offset(3)
                client.Complement = .offset(4)
                client.ville = Right(.offset(5 + offset), Len(.offset(5 + offset)) - Len(client.cp) - 1)
            Else
               client.cp = Split(.offset(5 + offset))(0)
                client.Nom = .Value
                client.Prenom = .offset(1).Value
                'client.Attention = .offset(2).Value
                client.adresse = .offset(3)
                'client.Complement = .offset(4)
                client.ville = Right(.offset(5 + offset), Len(.offset(5 + offset)) - Len(client.cp) - 1)
            End If
            End With
        End Sub
qui s'accompagne des functions suivantes
Code:
 Private Function IsCommentaireDe() As Boolean
            IsCommentaireDe = (InStr(1, ThisWorkbook.Sheets(WS_FACTURE).Range("J8"), "complement adesse") > 0)
        End Function
et
Code:
Private Function IsAttentionDe() As Boolean
    IsAttentionDe = (InStr(1, ThisWorkbook.Sheets(WS_FACTURE).Range("J7"), "à l'attention de") > 0)
End Function
et je te joint l'apercu de l'enregistrement

Pascal
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : cbxliescpville de dranreb a intégré dans classeur clients??

Pfou ! Sais pas. Faudrait simplifier tout ça je crois. La création du pdf ne pourrait-elle pas s'ajouter dans l'userform ? Parce que là on a toutes les informations du client, puisqu'on le renseigne en devis ou facture. J'ai vu du code avec Workbooks. Cette collection existe-t-elle encore en Excel 2013 ? Si oui je n'y comprends plus rien à ce qu'il a été dit par certains à propos du fait qu'on ne pourrait plus y ouvrir qu'un seul classeur …

Au fait dans la BtnValider_Click il y a encore :
Feuil1.[A1:A6].Value = VCol au lieu de
Fdevisfacture.[A1:A6].Value = VCol ou peut être plutôt
Fdevisfacture.[D4:D9].Value = VCol ou quelque chose comme ça, apparemment.
 
Dernière édition:

grisan29

XLDnaute Accro
Re : cbxliescpville de dranreb a intégré dans classeur clients??

bonjour dranreb
Code:
Private Sub BtnValider_Click()
If BtnValider.Caption = "Devis" Then
        Fdevisfacture.[J4:J9].Value = VCol
Else
fait depuis que tu m'a dit de le faire, de même que le reste du fichier

pour ce qui est du pdf il est derrière le bouton "enregistrer dans la base" et peu importe le nom du document il sera systématiquement sauvé en .xlsm et .PDF par ce morceau de code
Code:
' Sauvegarder le classeur actif dans le chemin et le nom determiné
  ' FileFormat:=xlExcel8,
  ActiveWorkbook.SaveAs Filename:=DIR_WORKSPACE & CheminXL & NomFicXL, _
                         Password:="", WriteResPassword:="", _
                        ReadOnlyRecommended:=False, CreateBackup:=False
  
  SetButtonsVisible False
  
  ' Exporter en PDF
  ActiveWorkbook.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=DIR_WORKSPACE & CheminPDF & NomFicPDF, Quality:= _
                                                 xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
                                                 OpenAfterPublish:=False
pour le ode qui est dans workbook il est la depuis le début que je me suis lancer a créer ce classeur et n'en a pas boger depuis, je vais le mettre en commentaire pour voir et je reviens

bonne journée

Pascal
 

Dranreb

XLDnaute Barbatruc
Re : cbxliescpville de dranreb a intégré dans classeur clients??

Pas la peine. Je ne souhaite plus continuer cette discussion. J'en ai assez de tes incompréhensions persistantes chroniques et tentatives empiriques.
 

grisan29

XLDnaute Accro
bonjour dranreb:cool::cool:
merci pour tout ce que tu as fait jusque maintenant:cool::cool::cool::cool::cool::cool: et de me rappeler que je ne suis qu'un incompétent et ignare et qui ne réussira pas a devenir autre chose qu'un incompétent notoire

Pascal
 

Discussions similaires


Haut Bas