Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Pb Suite A Partage Classeur

  • Initiateur de la discussion Initiateur de la discussion oasis_1
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

oasis_1

XLDnaute Occasionnel
Bonjour le Forum,

Mon problème suite à modification de classeur et donc partage, entre plusieurs classeur, je me retrouve avec un userform dans lequel se trouve un bouton me permettant d'impacter les données selectionné.

Seulement maintenant ma feuille1 se trouve dans un nouveau classeur appelée "feuilledevis 2" . Et je galère pour modifier cette macro

Ci-joint formule de ma macro :


Private Sub CommandButton5_Click() 'Transfert vers devis
Dim Nom As String
Dim NbDonnée As Integer
Dim Nb As Integer, Y As Integer
Dim Element_Select As Boolean
Dim X As Integer

Sheets("Feuil1").Select
'Nom = Range("B8").Value
NbDonnée = Range("A7").Value

'------------------ Vérification Feuille Devis ---------------
If Nom <> "" Or NbDonnée <> 0 Then
MsgBox "Votre feuille devis n'est pas vierge"
Exit Sub
End If

Element_Select = False
Nb = Sheets("Clients").Range("AQ3").Value
X = 4
If Nb = 0 Then Exit Sub 'si bibli vide

'------------------ Transfert Données vers Devis -------------
For i = 0 To Nb - 1
If UserForm12.ListBox1.Selected(i) = True Then
Element_Select = True
'Range("B8").Value = UserForm12.TextBox2.Value
Range("D4").Value = UserForm12.TextBox2.Value & " " & UserForm12.TextBox3.Value
Range("D5").Value = UserForm12.TextBox4.Value
Range("D6").Value = UserForm12.TextBox5.Value

End If
Next

'----------- DETECTION D'ERREUR (PAS DE SELECTION)---------------
If Element_Select = False Then
MsgBox "vous n'avez rien sélectionné: fin du programme", , "FACTURE DEVIS"
Exit Sub
End If
Sheets("Feuil1").Range("A9").Select
End Sub


Merci de votre aide
 
Re : Pb Suite A Partage Classeur

Re bonjour JM, oasis_1,

Voici les modifications à faire:

bouton "quitter":

Code:
Private Sub CommandButton6_Click() 'Quitter
[B][SIZE=3]fichier.Sheets("Clients").Activate[/SIZE][/B]
   fichier.Close
    Unload Me
End Sub

la ligne "set fichier ....." de la macro "Initialisation" est à déplacer ici (dans l'initialisation du userform):

Private Sub UserForm_Initialize()
Set fichier = Workbooks.Open("C:\VBA\Liste Clientèle.xls")
Call Initialisation
CommandButton4.Visible = False
CommandButton13.Visible = False
End Sub

ça devrait marcher maintenant 🙂
 
Dernière édition:
Re : Pb Suite A Partage Classeur

Re,

l'userform 1 se trouve dans le classeur " classeur devis " et doit aller chercher les données dans le classeur "liste clientèle"
Or dans ta proposition il me semble qu'il va cherche l userfom dans le classeur "liste clientèle", de plus par consequant le bouton Quitter ne fonctionne donc pas.

mon classeur Liste clientèle ne contient qu'une page active Clients sans userform.

Comme je le disais dans mon message précedent j'ai essayer de faire ce que tu m'avais fais pour mon autre problème, mais sans succès.

désolé skoobi mais je me suis perdu dans les transformations et ne sais plus ou j'en suis.

Par contre as tu testé chez toi mes deux classeur ?
 
Re : Pb Suite A Partage Classeur

Re,

Par contre as tu testé chez toi mes deux classeur ?
Oui chez moi ça marche.

Ce que tu dois savoir:

"fichier.sheets" identifie le classeur ouvert par la macro.
ThisWorkbook.sheets correspond au fichier dans lequel se trouve la macro.
Si ça peut t'aider.

Or dans ta proposition il me semble qu'il va cherche l userfom dans le classeur "liste clientèle"

Non, il ne "cherche" rien du tout, il va simplement activer et fermer le classeur "fichier" qui est le classeur ouvert par la macro comme je te l'explique plus haut.
 
Dernière édition:
Re : Pb Suite A Partage Classeur

Re,

j'ai regardé pour une fois avec mes 2 yeux.

Private Sub UserForm_Initialize()
Set fichier = Workbooks.Open("C:\VBA\Liste Clientèle.xls")
Call Initialisation
CommandButton4.Visible = False
CommandButton13.Visible = False
End Sub

il fallait juste que je change C:\VBA par le bon chemin .( et donc Quitter fonctionne parfaitement bien.parfois aveugle et oui avant l'age 😱

Cependant il ne reste qu'un seul problème pour que tout fonctionne bien c'est la touche transfert pour amener les donné du classeur "liste client" vers le classeur "classeur devis"

je ne te cache pas que j'ai du mettre des fichier.sheets et des ThisWorkbook.sheets un peu partout.

et comme à l'origine l'userform était dans le classeur "liste clientèle" j'impactais directement sur la feuille 1 du meme classeur, j'ai essayé de modifier en faisant:
ThisWorkbook.Sheets("Classeur devis").Activate
Sheets("Devis Facture Rapide").Select
et ça me donne Indice en dehors de la plage (erreur 9)

Prux tu voir ? ou es ce encore moi qui vois de travers
 
Re : Pb Suite A Partage Classeur

Re,
je ne te cache pas que j'ai du mettre des fichier.sheets et des ThisWorkbook.sheets un peu partout.
Et oui!!!, c'est ce que j'avais fais pour l'autre fichier.

ThisWorkbook.Sheets("Classeur devis").Activate
Sheets("Devis Facture Rapide").Select
et ça me donne Indice en dehors de la plage (erreur 9)

A mon avis "Devis Facture Rapide" n'est pas le bon nom de la feuille ou cette feuille se trouve sur l'autre classeur:
fichier.Sheets("Devis Facture Rapide").Activate

 
Re : Pb Suite A Partage Classeur

Re ,

je sens un air moqueur non !!!

Bon je compare ce que tu avais fait sur l'autre classeur .

"Devis Facture Rapide" est le bon nom de la page du classeur devis

Seulement j'ai essayé :

ThisWorkbook.Sheets("Classeur devis").Activate
Sheets("Devis Facture Rapide").Select
fichier.Sheets("Devis Facture Rapide").Activate
fichier.Sheets("Devis Facture Rapide").Select

et pour finir :
ActiveWorkbook.Sheet("Devis Facture Rapide").Range("S25").Value = UserForm1.TextBox2.Value & " " & UserForm12.TextBox3.Value
ou
ThisWorkbook.Worksheets("Devis Facture Rapide").Range("S25").Value = UserForm1.TextBox2.Value & " " & UserForm12.TextBox3.Value

rien y fait les donnés se copie sur la feuille "clients" du classeur "liste clientèle" mais dès que je modifie quelques chose Indice en dehors de la plage (erreur 9)

je vais encore essayer mais ça commence à me gonfler sérieux

@
 
Re : Pb Suite A Partage Classeur

Re, pour mémoire si ça t'interesse toujours

Private Sub CommandButton13_Click() 'Transfert vers devis
Dim Nom As String
Dim NbDonnée As Integer
Dim Nb As Integer, Y As Integer
Dim Element_Select As Boolean
Dim X As Integer

'Sheets("Feuil1").Select ' selection de la feuille ou vont les données
Element_Select = False
Nb = Sheets("Clients").Range("AQ3").Value
X = 4
If Nb = 0 Then Exit Sub 'si bibli vide

'------------------ Transfert Données vers Devis -------------
For i = 0 To Nb - 1
If UserForm1.ListBox1.Selected(i) = True Then
Element_Select = True
Range("S25").Value = UserForm1.TextBox2.Value & " " & UserForm1.TextBox3.Value
Range("S26").Value = UserForm1.TextBox4.Value
Range("S27").Value = UserForm1.TextBox5.Value

End If
Next

'----------- DETECTION D'ERREUR (PAS DE SELECTION)---------------
If Element_Select = False Then
MsgBox "vous n'avez rien sélectionné: fin du programme", , "FACTURE DEVIS"
Exit Sub
End If
Application.CutCopyMode = False
End Sub


Bien sur là rien a été modifié.
 
Re : Pb Suite A Partage Classeur

Re,



Non non, je ne me permettrai pas!!!

On tourne en rond, sans le fichier c'est dur de s'imaginer ce qui se passe.
Si tu ne peux le compresser à 50ko essaye sur ce site (jusqu'à 500ko)

Je n'en doutais pas mais il est vrais que je suis emmerdant avec toutes mes question 😀

Je te joint les 2 classeurs
 

Pièces jointes

Re : Pb Suite A Partage Classeur

Re,

voici ton bouton transfert modifié:

Code:
Private Sub CommandButton13_Click() ' envoyer vers devis
Dim Nom As String
Dim Bibli As String
Dim NbDonnée As Integer
Dim Nb As Integer, Y As Integer
Dim Element_Select As Boolean
Dim x As Integer
Range("S25").ClearContents
'Range("S26").ClearContents
'Range("S27").ClearContents
 
 
'Application.ScreenUpdating = False   'ne pas voir ce qui se passe à l'écran

'ThisWorkbook.Sheets("Classeur devis").Activate
'Sheets("Devis Facture Rapide").Select
'fichier.Sheets("Devis Facture Rapide").Activate
'fichier.Sheets("Devis Facture Rapide").Select
'fichier.Sheets("Feuil2").Select ' selection de la feuille ou vont les données
'NbDonnée = Range("A7").Value
Element_Select = False
Nb = fichier.Sheets("Clients").Range("AQ3").Value
x = 4
If Nb = 0 Then Exit Sub 'si bibli vide

'------------------ Transfert  -------------
For i = 0 To Nb - 1
    If UserForm1.ListBox1.Selected(i) = True Then
        Element_Select = True
        Bibli = fichier.Sheets("Clients").Range("ar"[B] & i + x[/B]).Value
        If Selection = Bibli Then
            [B]ThisWorkbook.Sheets("Devis Facture Rapide").Activate[/B]
            Range("S25").Value = UserForm1.TextBox2.Value & " " & UserForm1.TextBox3.Value
            Range("S26").Value = UserForm1.TextBox4.Value
            Range("S27").Value = UserForm1.TextBox5.Value
        End If
    End If
Next
'----------- DETECTION D'ERREUR (PAS DE SELECTION)---------------
If Element_Select = False Then
MsgBox "vous n'avez rien sélectionné: fin du programme", , "FACTURE DEVIS"
Exit Sub
End If
'Sheets("Feuil1").Select
 Application.CutCopyMode = False ' pour effacer le pressepapier sinon j'ai le message  de trop plein quand je ferme excel

End Sub

Edit: remplace tout le code, pas que ce qui est en gras.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
733
Réponses
3
Affichages
256
Réponses
5
Affichages
910
Réponses
10
Affichages
661
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…