cbxlies concocter par dranreb pour matou59

grisan29

XLDnaute Accro
Re : cbxlies concocter par dranreb pour matou59

bonjour

je vais joindre le classeur client pour que tu voie ce que j'ai fait, le code du bouton d'appel n'a pas changer
Code:
Private Sub CommandButton2_Click()
Unload Me
Dim Clas As Workbook, NomClass As String, Feuil As Worksheet
If WB_BASE_CLIENTS = "" Then MsgBox "Variable Public WB_BASE_CLIENTS As String non initialisée.", vbCritical, Me.Caption: Exit Sub
If WS_CLIENTS = "" Then MsgBox "Variable Public WS_CLIENTS As String non initialisée.", vbCritical, Me.Caption: Exit Sub
'If IsEmpty(RG_DÉBUT_BASE_CLIENT) Then MsgBox "Variable Public RG_DÉBUT_BASE_CLIENT non définie As Range.", vbCritical, Me.Caption: Exit Sub
'ElseIf UCase(Clas.FullName) <> UCase(WB_BASE_CLIENTS) Then MsgBox "Un classeur """ & Clas.Name & """ est déjà ouvert mais vient de" '_ etc.
On Error Resume Next
NomClass = Mid$(WB_BASE_CLIENTS, InStrRev(WB_BASE_CLIENTS, "\") + 1)
Set Clas = Workbooks(NomClass)
If Err Then
   Err.Clear: Set Clas = Workbooks.Open(WB_BASE_CLIENTS)
   If Err Then MsgBox "Il n'existe pas de classeur """ & WB_BASE_CLIENTS & """.", vbCritical, Me.Caption: Exit Sub
   ElseIf UCase(Clas.FullName) <> UCase(WB_BASE_CLIENTS) Then MsgBox "Un classeur """ & Clas.Name & """ est déjà ouvert mais vient de" '_
   'ElseIf Clas.FullName <> WB_BASE_CLIENTS Then MsgBox "Un classeur """ & Clas.Name & """ est déjà ouvert mais vient de" _
   & vbLf & Clas.FullName & " et non de" & vbLf & WB_BASE_CLIENTS, vbCritical, Me.Caption: Exit Sub
   End If
Set Feuil = Clas.Worksheets(WS_CLIENTS)
If Err Then MsgBox "Le classeur """ & Clas.Name & """ ne contient pas de feuille """ & WS_CLIENTS & """.", _
   vbCritical, Me.Caption: Exit Sub
'Set RG_DÉBUT_BASE_CLIENT = Feuil.[A2]
'Unload Me
'Uclient.Show

End Sub
Pascal
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : cbxlies concocter par dranreb pour matou59

Je confirme que dans UserForm_Initialize il faut mettre État = 1 derrière la CL.Actualiser et probablement supprimer tout le reste puisque on est dans un fichier Clients qui est ouvert et que c'est celui là qu'il faut utiliser.

Attention PlgDest n'est pas déclaré. Ni utilisé d'ailleurs. Ça m'a l'air d'être un UF de mise à jour des clients seulement, il ne semble pas comporter de dispositif permettant d'en inscrire un dans une facture.
 
Dernière édition:

grisan29

XLDnaute Accro
Re : cbxlies concocter par dranreb pour matou59

pourtant dans le btvalder j'ai mis
Code:
With Workbooks("CbxLiésgrisan9-v2-3.xls").Sheets("FactDev")
  
   .[E4:E9].Value = VCol
   End With
et cela inscrit sur le classeur factdev
 

Dranreb

XLDnaute Barbatruc
Re : cbxlies concocter par dranreb pour matou59

Je n'avais pas vu.
Alors veiller à ce que PlgDest soit initialisé de façon à pouvoir faire PlgDest.Value = VCol
Ça doit toujours être toute la F.[DOC_CLIENT] quelle que soit la cellule qu'on en a sélectionné.
Et la déclarer en tête bien sûr !
 
Dernière édition:

grisan29

XLDnaute Accro
Re : cbxlies concocter par dranreb pour matou59

plgdest est déclarer en tête du code de l'userform
Code:
Option Explicit
Dim WithEvents CLCPVil As ComboBoxLiées
Dim WithEvents CL As ComboBoxLiées
Dim LCou As Long, VLgn() As Variant, ExécutionIntempestive As Boolean
Dim État As Byte
Dim ValsLgn(), PlgDest As Range
tu dit toute la F.[DOC_CLIENT] mais DOC_CLIENT n'est que le nom d'une cellule
voici ce que j'ai dit dans le post #136
il y a la la zone A1:G16 qui est nommée entete_feuille et la cellule E4 est nommée DOC_CLIENT (comme sur l'autre classeur)
Pascal
 

Dranreb

XLDnaute Barbatruc
Re : cbxlies concocter par dranreb pour matou59

mais DOC_CLIENT n'est que le nom d'une cellule
Ce n'était pas suggéré par l'instruction Set PlgDest = Intersect(F.[DOC_CLIENT], Target.EntireRow) qui cherchait donc une intersection pour rien.
D'après ce que tu dis, pourquoi ne pas prendre Set PlgDest = F.[entete_feuille] ?
 

grisan29

XLDnaute Accro
Re : cbxlies concocter par dranreb pour matou59

bonsoir

le classeur client ne transmets pas dans le bon ordre les données clients depuis et je n'arrive pas a les remettre dans l'ordre
 

Dranreb

XLDnaute Barbatruc
Re : cbxlies concocter par dranreb pour matou59

Bonjour.
Curieux d'avoir mis 2 noms dont aucun ne correspond exactement à l'endroit ou il faut ranger ces données !
Un seul y correspondant aurait suffit, non ?
 

grisan29

XLDnaute Accro
Re : cbxlies concocter par dranreb pour matou59

bonjour dranreb

je ne vois pas où il y a 2 noms identiques dans le code du bouton
Code:
Private Sub BtnValider_Click()
If BtnValider.Caption = "Devis" Then
   Dim VCol(1 To 6, 1 To 1)
   VCol(1, 1) = VLgn(1, 3) & " " & VLgn(1, 4)
   VCol(2, 1) = VLgn(1, 5)
   VCol(3, 1) = "À l'attention de :  " & VLgn(1, 6)
   VCol(4, 1) = VLgn(1, 7)
   VCol(5, 1) = VLgn(1, 8)
   VCol(6, 1) = VLgn(1, 9) & " " & VLgn(1, 10)
   
   'With Workbooks("CbxLiésgrisan9-v2-3.xls").Sheets("FactDev")
   
  Sheets("feuil1").[E4:E9].Value = VCol
   'End With
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, 3) = Me.TBattention.Text
   VLgn(1, 4) = Me.TBadresse.Text
   VLgn(1, 5) = Me.TBcomplement.Text
   VLgn(1, 6) = Me.CBcp.Text
   VLgn(1, 7) = Me.CBville.Text
   VLgn(1, 8) = Me.TBtele.Text
   VLgn(1, 9) = Me.TBport.Text
   VLgn(1, 10) = Me.TBfax.Text
   VLgn(1, 11) = Me.TBmail.Text
   CL.PlgTablo.Rows(LCou).Resize(, 12).Value = VLgn
   CL.Actualiser
   HabiliterBoutons
   End If
End Sub
et de plus sur le cbxliées-client de départ les n°tel et mail ne s'écrivait pas sur la feuille et ici il font

Pascal
 

Dranreb

XLDnaute Barbatruc
Re : cbxlies concocter par dranreb pour matou59

Je parlais des deux noms de plages différents: DOC_CLIENT et entete_feuille.
Aucun des deux n'est définie de façon à pouvoir être simplement pris en tant que PlgDest, pour pouvoir faire PlgDest.Value = VCol dans la BtnValider_Click, pour que ça s'adapte à toute feuille portant ce nom de plage dans n'importe quel classeur.
 

grisan29

XLDnaute Accro
Re : cbxlies concocter par dranreb pour matou59

bonjour

j'ai fait plusieurs changement de classeur client et tous une fois mis les quelques adaptation pour etre ouvert depuis c: n'inscrivent pas correctement leurs données même en ayant repris celui-ci que tu as bien fini

Pascal
 

Dranreb

XLDnaute Barbatruc
Re : cbxlies concocter par dranreb pour matou59

Oui ben on peut réutiliser cette petite procédure Mettre pour remplir VCol, mais à la fin au lieu de Feuil1.[A1:A5].Value = VCol
Mettre PLgDest.Value = VCol, PlgDest ayant fait l'objet d'un Set de la bonne plage lors de l'Ex_Sheet_SelectionChange.
 

grisan29

XLDnaute Accro
Re : cbxlies concocter par dranreb pour matou59

maintenant c'est bon, je ne sais pas pourquoi mais c'est bon sauf que l'userform ne s'ouvre pas il faut retourner dans le classeur client et cliquer sur le bouton pour que l'userform s'ouvre sur dans le classeur CbxLiésgrisan9-v2-3.xls
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : cbxlies concocter par dranreb pour matou59

La procédure LancementClients a-t-elle été exécutée (par un Run ou par clic sur quelque chose qui supporte une propriété OnAction) ?
 

grisan29

XLDnaute Accro
Re : cbxlies concocter par dranreb pour matou59

la procédure a été lancer par un appel macro dans la macros articles crée il y a quelques jours

Code:
Sub LancementClients()
UserForm1.Lancer
End Sub
Code:
Private Sub Ex_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim F As Worksheet
Me.Hide
État = 2
If Target Is Nothing Then Exit Sub
On Error Resume Next
'If Target.Column <> 2 Then Exit Sub
If Target.Rows.Count <> 1 Then Exit Sub
Set F = Sh
If Intersect(F.[entete_feuille], Target) Is Nothing Then Exit Sub
If Err Then Exit Sub
Set PlgDest = Intersect(F.[entete_feuille], Target.EntireRow)
État = 3
End Sub
Code:
Private Sub Mettre(VCol(), L As Long, ByVal Z As String, Optional ByVal Devant As String)
Z = Trim$(Z): If Z <> "" Then L = L + 1: VCol(L, 1) = Devant & Z
End Sub
si je mets
Code:
Application.Run "'C:\Documents and Settings\luck\Mes documents\XLD\CbxLiéesGrisan29.xls'!LancementClients"
ca bug et la methode "run" a échouée

Pascal
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : cbxlies concocter par dranreb pour matou59

Vous allez devoir avancer tout seul pendant quelques mois, je crois. Et relire au moins 3 fois mais petit à petit toute la discussion jusque dans ses moindre détails, avec la ferme volonté de bien vous les enfoncer dans le crâne.
 
Démarré par Discussions similaires Forum Réponses Date
grisan29 Forum Excel 156

Discussions similaires


Haut Bas