Navigation entre UserForm

barry white

XLDnaute Junior
Bonjour à tous!

Un petit souci à vous soumettre!

J'ai une 1ere Userform qui à un lisview qui affiche une liste de fichier pdf. Quand je clique sur une ligne de la listview, cela provoque l'ouverture d'une deuxieme UserForm qui affiche le PDF (grâce au contrôle Adobe Acrobate Reader disponible dans la boite à outils VBA). Une fois la deuxième Userform ouverte, je voudrais selectioner la 1ere Userform automatiquement et que la deuxième Userform soit à coté pour pouvoir visualiser le PDF.

Merci encore pour votre aide. ;)

bon début de journée :D
 

Pierrot93

XLDnaute Barbatruc
Re : Navigation entre UserForm

Bonjour,

regarde peut être ceci, les 2 userforms doivent être non modal, dans le module de l'usf 1 :
Code:
Option Explicit
Private Sub UserForm_Click()
UserForm2.Show 0
AppActivate (Me.Name)
End Sub

dans le module de l'usf 2 :
Code:
Option Explicit
Private Sub UserForm_Activate()
With UserForm1
    Me.Left = .Left + .Width
    Me.Top = .Top
End With
End Sub

bonne journée
@+
 

Pierrot93

XLDnaute Barbatruc
Re : Navigation entre UserForm

Re,

pour être plus juste, dans l'usf 1, préférable d'utiliser la propriété "caption" plutôt que "name", surtout si différent :
Code:
Option Explicit
Private Sub UserForm_Click()
UserForm2.Show 0
AppActivate (Me.Caption)
End Sub
 

barry white

XLDnaute Junior
Re : Navigation entre UserForm

Bonjour Pierrot,

Merci pour ton aide. La solution ne marche pas. Il fini toujours pas sélectioner l'USF2. Ci-dessous le code des deux USF :

Userform 1 :

Code:
Option Explicit
Private Sub LSV_MOD_Click()
Dim numpat, Num_pages_scan, test_NumPat_SCAN, NumPat_SCAN, test_heure_scan, test_pages, test_taille, test_date_scan As String
Dim derlig, i As Long

If test_PDF_USF = "OK" Then
    Unload PDF_test
    test_PDF_USF = "KO"
End If

derlig = Range("A65536").End(xlUp).Row
DT_SCAN = Format(LSV_MOD.SelectedItem.ListSubItems(2).Text, "DD/MM/YYYY")
HEURE_scan = Format(LSV_MOD.SelectedItem.ListSubItems(3).Text, "HH:MM:SS")
Nb_pages = LSV_MOD.SelectedItem.ListSubItems(1).Text
Taille = LSV_MOD.SelectedItem.ListSubItems(4).Text
NomficPAT = LSV_MOD.SelectedItem
NomFicTemp = ActiveWorkbook.name
Windows(NomFicTemp).Activate
NomFeuiL = ActiveWorkbook.ActiveSheet.name
RepScan = "Z:\REC\ADM\"

For i = 1 To derlig
nomFicH = Sheets(NomFeuiL).Range("B" & i).Value
'Repfic = RepScan
numpat = Sheets(NomFeuiL).Range("A" & i).Text
test_heure_scan = Sheets(NomFeuiL).Range("D" & i).Text
test_pages = Sheets(NomFeuiL).Range("F" & i).Text
test_taille = Split(Sheets(NomFeuiL).Range("E" & i).Text, ",")(0)
'test_taille2 = Sheets(NomFeuiL).Range("E" & i).Value
test_date_scan = Sheets(NomFeuiL).Range("C" & i).Text

If numpat = NomficPAT And test_heure_scan = HEURE_scan And test_pages = Nb_pages And test_taille & "Ko" = Taille Then

PDF_test.Show 0
AppActivate (Me.Caption)

Exit For

End If

Next i

End Sub

Userform 2 :

Code:
Option Explicit
Private Sub UserForm_Activate()
With USF_2A_GES_DOC_AJOUT
    Me.Left = .Left + .Width
    Me.Top = .Top
End With

End Sub

Private Sub UserForm_Initialize()

test_PDF_USF = "OK"
  With AcroPDF1
  .Src = RepScan & nomFicH 'Nom du fichier ou lien URL
  .LoadFile (RepScan & nomFicH)
  .setShowScrollbars (True) 'Affiche l'assenceur True/False
  .setShowToolbar (False) 'Affiche la barre d'outil True/false
  .setPageMode ("none") 'Determine le mode d'affichage none/bookmarks/thumbs
  .setLayoutMode ("SinglePage") 'Determine le type d'affichage DontCare/SinglePage/OneColumn/TwoColumnLeft/TwoColumnRight
  .setCurrentPage ("1") 'Numéro de la page a afficher
  .setView ("Fit") 'Fixe la méthode d'affichage Fit/FitH/FitV/FitB/FitBH/FitB
  .setZoom (52) 'Determine de niveau de zoom
End With
End Sub

Merci encore pour ton aide.
 

Pierrot93

XLDnaute Barbatruc
Re : Navigation entre UserForm

Re,

modifie peut être la fin comme suit :
Code:
If numpat = NomficPAT And test_heure_scan = HEURE_scan And test_pages = Nb_pages And test_taille & "Ko" = Taille Then
GoTo fin
End If
Next i
Exit Sub
fin:
PDF_test.Show 0
AppActivate (Me.Caption)
End Sub
 

barry white

XLDnaute Junior
Re : Navigation entre UserForm

Re,

pour être plus juste, dans l'usf 1, préférable d'utiliser la propriété "caption" plutôt que "name", surtout si différent :
Code:
Option Explicit
Private Sub UserForm_Click()
UserForm2.Show 0
AppActivate (Me.Caption)
End Sub

Je me suis trompé de citation, ne pas prendre en compte le message.
 
Dernière édition:

barry white

XLDnaute Junior
Re : Navigation entre UserForm

Re,

modifie peut être la fin comme suit :
Code:
If numpat = NomficPAT And test_heure_scan = HEURE_scan And test_pages = Nb_pages And test_taille & "Ko" = Taille Then
GoTo fin
End If
Next i
Exit Sub
fin:
PDF_test.Show 0
AppActivate (Me.Caption)
End Sub

ça ne fonctionne pas.
Par contre si je fais une pause sur "AppActivate (Me.Caption)" et que j'appuie sur F5 pour continuer, la ça fonctionne... Comprends pas...
 

Discussions similaires

  • Question
Microsoft 365 webbrowser
Réponses
20
Affichages
964

Statistiques des forums

Discussions
312 480
Messages
2 088 757
Membres
103 950
dernier inscrit
Thomas Solioz