Pb Changement de version d'Excel avec un affichage - VB / VBA

Pb Changement de version d'Excel avec un affichage Changer de version excel (Résolu) » Forum - Excel EXCEL : Changement de version (Résolu) » Forum - Excel Changer la version excel des tableau insérables dans Word » Forum - Word Excel : Changer un point en virgule [Résolu] (Résolu) » Forum - Excel Telecharger une nouvelle version android sur tablette Samsung GT [Résolu] » Forum - Tablette tactile

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:

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

Forum

Pb Changement de version d'Excel avec un affichage Changer de version excel (Résolu) » Forum - Excel EXCEL : Changement de version (Résolu) » Forum - Excel Changer la version excel des tableau insérables dans Word » Forum - Word Excel : Changer un point en virgule [Résolu] (Résolu) » Forum - Excel Telecharger une nouvelle version android sur tablette Samsung GT [Résolu] » Forum - Tablette tactile

Web: www.shapebootstrap.net

7 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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.

Reply
réponses:
  • 2015-1158

    Merci pour la réponse.
    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

  • Patrice33740

    A ma connaissance, la dernière version d'Excel est la 2016 et la prochaine la 2018, je n'ai jamais entendu parler de la 2017.

    Effectivement avec 2016 j'ai le même comportement, la solution :

    Dim uf1 as UserForm1  '.... Set uf1 = UserForm1 Workbooks.Open Filename:="A:\163....." '.... uf1.Show 0

  • auteur

    Salut merci pour la réponse, j'ai essayé de déclarer dans la procedure de mon bouton ActivX l'userform comme tu m'as dis. Mais ca ne marche pas:

    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     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             uf1.Show 0         Else         End If         uf31.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"         uf61.Show 0         ActiveWorkbook.Save         ActiveWorkbook.Close False     End If End Sub    

  • auteur

    Erreur d'incompatibilité 91, variable ou objet bloc non définit i

  • f894009

    Bonjour tout le monde,

    essayez ceci:

    Sub test()     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     CB = CB10.Caption     If Cells(10, 2) = "Demande" Then         Nom_Fichier = ActiveSheet.Name + ".xlsm"         Workbooks.Open Filename:="A:\163_MATERIEL\MATÉRIEL-PARCS\Bungalows\Planification_Bungalows_VBA\Chantier\" + Nom_Fichier         Fichier = ActiveSheet.Cells(CB + 11, 2)         ChDir ThisWorkbook.Path & "\"         If Fichier <> False Then             uf1.Show 0         End If         uf31.Show 0         Workbooks(Nom_Fichier).Close True     ElseIf Cells(10, 2) = "Retour" Then         Workbooks.Open Filename:="A:\163_MATERIEL\MATÉRIEL-PARCS\Bungalows\Planification_Bungalows_VBA\Chantier\" + Nom_Fichier         uf61.Show 0         Workbooks(Nom_Fichier).Close True     End If End Sub

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Re,

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 !)

Cordialement
Patrice

Reply

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed