COMBOBOX: macro ne fonctionne qu'une fois

  • Initiateur de la discussion Initiateur de la discussion phdumon
  • 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 !

P

phdumon

Guest
Bonjour à toute l'équipe,

Voici une partie d'un code dans une de mes applications. Il permet de retrouver l'adresse d'un destinataire d'une lettre en Word dans un tableau excel.
Malheureusement, si je répète l'action, le code bloque: le combobox reste figé sur un nom sans que je puisse le sélectionner. Avez-vous une idée?

D'avance merci

Voici le code

Dim NextRow As Long
Dim macell As Range, premcell As Range
Dim macell1 As Range

NOM = Worksheets("données").Range("A2")
With Worksheets("carnet").Range("a1:b10000")
Set macell1 = .Find(NOM, LookIn:=xlValues, lookat:=xlWhole)
Workbooks("dossiers").Worksheets("données").Range("A31").Value = macell1.Offset(0, 4)
Workbooks("dossiers").Worksheets("données").Range("B31").Value = macell1.Offset(0, 0)
Workbooks("dossiers").Worksheets("données").Range("C31").Value = macell1.Offset(0, 5)
Workbooks("dossiers").Worksheets("données").Range("D31").Value = macell1.Offset(0, 1)
Workbooks("dossiers").Worksheets("données").Range("E31").Value = macell1.Offset(0, 2)
Workbooks("dossiers").Worksheets("données").Range("F31").Value = macell1.Offset(0, 3)
UserForm15.Hide
destnom = Workbooks("dossiers").Worksheets("données").Range("A31") & " " & Workbooks("dossiers").Worksheets("données").Range("B31")
desttitre = Workbooks("dossiers").Worksheets("données").Range("C31")
destrue = Workbooks("dossiers").Worksheets("données").Range("D31")
destcodeville = Workbooks("dossiers").Worksheets("données").Range("E31") & " " & Workbooks("dossiers").Worksheets("données").Range("F31")
dossier = Workbooks("dossiers").Worksheets("données").Cells(33, 1)
gestionnaire = Workbooks("dossiers").Worksheets("données").Cells(33, 2)
numéro = Workbooks("dossiers").Worksheets("données").Cells(33, 3)
final = Workbooks("dossiers").Worksheets("données").Cells(33, 4)
mail = Workbooks("dossiers").Worksheets("données").Cells(8, 3)
End With
Application.DisplayAlerts = False
Workbooks("carnet").Close
' Colle les données dans Word
Dim text As String
Dim DocWord As Word.Document
Dim AppWord As Word.Application
Set AppWord = New Word.Application
Application.DisplayAlerts = False
AppWord.ShowMe
AppWord.Visible = True
'Ouvre le document Word
Set DocWord = AppWord.Documents.Open("R:\répertoire\lettres\lettre générale.doc", ReadOnly:=False)
Application.DisplayAlerts = False
DocWord.Unprotect
With AppWord
'Se positionne sur le signet dossier
.Selection.Goto What:=wdGoToBookmark, Name:="dossier"
.Selection.TypeText dossier
.Selection.Goto What:=wdGoToBookmark, Name:="gestionnaire"
.Selection.TypeText gestionnaire
.Selection.Goto What:=wdGoToBookmark, Name:="numéro"
.Selection.TypeText numéro
.Selection.Goto What:=wdGoToBookmark, Name:="final"
.Selection.TypeText final
.Selection.Goto What:=wdGoToBookmark, Name:="mail"
.Selection.TypeText mail
.Selection.Goto What:=wdGoToBookmark, Name:="destnom"
.Selection.TypeText destnom
.Selection.Goto What:=wdGoToBookmark, Name:="desttitre"
.Selection.TypeText desttitre
.Selection.Goto What:=wdGoToBookmark, Name:="destrue"
.Selection.TypeText destrue
.Selection.Goto What:=wdGoToBookmark, Name:="destcodeville"
.Selection.TypeText destcodeville

DocWord.Protect _
Type:=wdAllowOnlyFormFields, NoReset:=True
End With
End Sub
 
Re : COMBOBOX: macro ne fonctionne qu'une fois

Bonsoir Phdumon, le forum,

Pas de réponse au bout de 5h.
Alors à défaut de pouvoir consacrer du temps à autopsier ton code relativement "touffu", je te propose, après une quinzaine de seconde de réflexion, de vider en premier lieu l'espace mémoire que tu as surchargé avec tes variables, notamment AppWord (nouvelle application WORD).
Le principe, trop souvent négligé, est le suivant :
Quand on déclare une "grosse variable", il est préférable de la vider de la manière suivante :

Code:
Dim AppWord As Word.Application
Set AppWord = New Word.Application
------------ le corps de ta macro et pour finir, avant End Sub :
[color=red]Set AppWord = Nothing[/color]

J'ai pris cette habitude avec toutes les variables "chargées" avec Set.

Cela ne résoudra probablement pas ton problème, mais ça ne devrait pas faire de mal, au contraire.

Bonne soirée
Kotov
 
Re : COMBOBOX: macro ne fonctionne qu'une fois

Le combobox est repris dans un userform. le controlrow renvoie à une colonne.

Lorsque je relance le userform. Il n'y a plus aucune donnée reprise dedans: Voici d'ailleurs le message
"Opération non terminée en raison de l'erreur 800a01a8.

J'ai testé le truc de Kotov, sans succès.

D'avance merci et banannée et pommes sautées
 
Re : COMBOBOX: macro ne fonctionne qu'une fois

Bonjour à tous


Phdumon, encore une fois sur XLD, on aime bien avoir un petit fichier surtout avec les USF, Textbox et Combobox qui sont très complexes et très sensibles à l'écriture du code.

Sinon dans ton code tu met un hide, je préfére unload si tu veux recharger plus tard l'USFqui par l'initialize sera rempli comme à la première fois. Hide sert a revenir sur ses dernier paramètres à prendre en compte dans ton USF.

Donc pour 2009, on aide son prochain en montrant son fichier! Sinon à quoi cela sert que XLD se décarcasse.
 
Re : COMBOBOX: macro ne fonctionne qu'une fois

Merci pour l'info.
Je veux bien mettre mon application sur le site, le problème c'est que c'est assez volumineux et renvoie à d'autres fichiers situés sur le serveur du bureau.
Comment puis je l'annexer?
 
Re : COMBOBOX: macro ne fonctionne qu'une fois

Re bonjour

Essayes d'extraire l'USf qui pose problème dans un fichier. Ensuite tu peux metre jusque 4 fichiers (par ex un word et un excel zippé sans données confidentielles de moins de 47 ko).

Sinon as tu esayé de remplacer userform15.hide par unload userform15.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
673
Réponses
0
Affichages
661
Réponses
9
Affichages
1 K
M
Réponses
6
Affichages
1 K
mimich_88
M
M
Réponses
4
Affichages
977
mimich_88
M
R
  • Question Question
Réponses
2
Affichages
989
Rousseau Benoit
R
Retour