Pb Changement de version d'Excel avec un affichage
2015-1158
Messages postés
34
Date d'inscription
Statut
Membre
Dernière intervention
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai codé un VBA assez long sur Excel2000. Je vous montre la partie qui plante.
Explication du code:
1) On clique sur le bouton (ActivX)
2) Ca ouvre un fichier Excel Annexe ainsi qu'un userform
3) L'userform se prérempli en cherchant les infos dans le excel annexe.
4) Userform.Show 0 (On laisse le userform en suspend)
5) On ferme le fichier excel annexe.
6) Résultat il me reste le fichier excel principal sur lequel on voit ouvert l'userform prérempli à partir d'un excel annexe.
Sur mon PC avec le Excel2000 tout fonctionne nickel !
Puis j'ouvre le fichier sur Excel2017 avec un autre PC. Il ouvre l'userform mais dès qu'il ferme l'excel annexe il ferme automatiquement l'userform avec. Pourtant le code n'a pas changé. J'en ai déduis que le Excel2017 ne reconnaissait pas le "Userform.Show 0", j'ai essayé avec " Userform.Show False" "Userform.Show vbModeless".
Rien à faire.
Voici l'extrait du code:
Merci pour votre aide
J'ai codé un VBA assez long sur Excel2000. Je vous montre la partie qui plante.
Explication du code:
1) On clique sur le bouton (ActivX)
2) Ca ouvre un fichier Excel Annexe ainsi qu'un userform
3) L'userform se prérempli en cherchant les infos dans le excel annexe.
4) Userform.Show 0 (On laisse le userform en suspend)
5) On ferme le fichier excel annexe.
6) Résultat il me reste le fichier excel principal sur lequel on voit ouvert l'userform prérempli à partir d'un excel annexe.
Sur mon PC avec le Excel2000 tout fonctionne nickel !
Puis j'ouvre le fichier sur Excel2017 avec un autre PC. Il ouvre l'userform mais dès qu'il ferme l'excel annexe il ferme automatiquement l'userform avec. Pourtant le code n'a pas changé. J'en ai déduis que le Excel2017 ne reconnaissait pas le "Userform.Show 0", j'ai essayé avec " Userform.Show False" "Userform.Show vbModeless".
Rien à faire.
Voici l'extrait du code:
Private Sub CB10_Click()
CB = CB10.Caption
If Cells(10, 2) = "Demande" Then
Workbooks.Open Filename:="A:\163_MATERIEL\MATÉRIEL-PARCS\Bungalows\Planification_Bungalows_VBA\Chantier\" + ActiveSheet.name + ".xlsm"
Fichier = ActiveWorkbook.ActiveSheet.Cells(CB + 11, 2)
ChDir ThisWorkbook.Path & "\"
If Fichier <> False Then
UserForm1.Show 0
Else
End If
UserForm31.Show 0
ActiveWorkbook.Save
ActiveWorkbook.Close False
ElseIf Cells(10, 2) = "Retour" Then
Workbooks.Open Filename:="A:\163_MATERIEL\MATÉRIEL-PARCS\Bungalows\Planification_Bungalows_VBA\Chantier\" + ActiveSheet.name + ".xlsm"
UserForm61.Show 0
ActiveWorkbook.Save
ActiveWorkbook.Close False
End If
End Sub
Merci pour votre aide
A voir également:
- Pb Changement de version d'Excel avec un affichage
- Liste déroulante excel - Guide
- Changer de dns - Guide
- Word et excel gratuit - Guide
- Trier un tableau excel - Guide
- Déplacer colonne excel - Guide
2 réponses
Bonjour,
1) "Userform.Show 0", " Userform.Show False" et "Userform.Show vbModeless" c'est pareil !
2) Si l'usf appartient au fichier ouvert, il est normal qu'il se ferme lorsqu'on ferme de fichier, il faut mettre tous les usf dans le fichier qui contient la macro.
1) "Userform.Show 0", " Userform.Show False" et "Userform.Show vbModeless" c'est pareil !
2) Si l'usf appartient au fichier ouvert, il est normal qu'il se ferme lorsqu'on ferme de fichier, il faut mettre tous les usf dans le fichier qui contient la macro.
Re,
Au lieu de
Essayer simplement :
A condition que les UserForm61, UserForm1 et UserForm31 soient déjà intégrés au fichier, chez moi ça fonctionne correctement (comme dans mon post précédent !)
Au lieu de
Dim UserForm31 As UserForm Dim UserForm61 As UserForm Dim UserForm1 As UserForm Dim uf31 As UserForm Dim uf61 As UserForm Dim uf1 As UserForm Set uf31 = UserForm31 Set uf1 = UserForm1 Set uf61 = UserForm61
Essayer simplement :
Dim uf31 As UserForm31 Dim uf61 As UserForm61 Dim uf1 As UserForm1 Set uf31 = UserForm31 Set uf1 = UserForm1 Set uf61 = UserForm61
A condition que les UserForm61, UserForm1 et UserForm31 soient déjà intégrés au fichier, chez moi ça fonctionne correctement (comme dans mon post précédent !)
1) Oui je m'en doutais.
2) l'USF appartient au excel principal par contre les réponses lorsque l'USF s'autoconplete appartiennent au excel annexe. Mais le hic c'est que avec EXCEL2000 tout fonctionne, le fichier annexe se ferme et mon UF reste ouvert avec les données. Mais sur EXCEL2017 ca ferme tout. Je pense que c'est un problème d'outils entre les deux versions
Effectivement avec 2016 j'ai le même comportement, la solution :
essayez ceci: