User form en arrière plan

Bonjour,

Je souhaiterais pouvoir naviguer sur mon fichier Excel tout en ayant l'user form d'ouvert.

Est-ce possible ?

J'ai simplifié mon fichier le plus possible car sinon la taille est trop importante

Merci

52user-form.zip (307.29 Ko)

Bonjour

Allez dans les propriétés de l'userform et mettez la propriété "ShowModal" à "False"

Cdlt

Bonjour à tous,

ou bien spécifier dans l'instruction d'ouverture de la userform :

Userform1.Show 0  '0=> userform non modal

A+

Bonjour,

Dans les 2 cas ceci ne me fait même pas apparaître l'user form.

Il se lance via une macro peut être es ce la le problème ?

Merci

Dans le classeur joint il n'y a pas de macro !!

Dans vos macros il doit bien y avoir une instruction pour "ouvrir" l'userform du style : UserForm1.Show (sinon comment ouvrez vous votre userform?)

Modifier cette instruction comme proposé...

J'ai essayer mais sa ne l'affiche pas

Bonjour,

Ou est la macro qui ouvre le formulaire comme vous l'a demandez AlgoPlus ?

Voici votre fichier avec cette macro et l'application de 'ShowModal" à "false"

Cdlt

Le problème c'est que je peut pas mettre le fichier car il est trop lourd...

61 559 Ko

j'ai repris votre exemple et en mettant ShowModal à False l'user forme ne s'affiche pas et pareil pour Userform.Show 0

La macro continu l'air de rien

Pas besoin du fichier en entier, 1 seule feuille avec quelques lignes suffit, mais avec les macros.

Je peut vous montrer la macro qui lance l'userform:

Sub suppression_levé_de_pied()

    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
'
'--------------------------------------------------------------------------------
'Supprime les valeurs de Lambda égale à la valeur rentré dans les pied levé
'--------------------------------------------------------------------------------
'
    Call X_Variables.Variables

Sheets("D_B").Select
With Userform1
    Set .Feuille = Worksheets("D_B")
    .Show
End With
  Unload Userform1
'Fin TEST

'
'----------------------------------------
'___________ Numération Trame ___________
'----------------------------------------
'

    Sheets("INFOS").Select

    Range("D9").Select
    ActiveCell.FormulaR1C1 = "=COUNTA(D_B!C[-1])-2"
    Range("D10").Select
Lig = Cells(9, 4)
 '
    Sheets("D_B").Select

Columns("A:A").Select
Selection.ClearContents

    Range("A1").Select
    ActiveCell.FormulaR1C1 = "Trame D'enregistrement"

    Dim numero As Integer
    numero = 2 'Numéro de départ (correspond ici au n° de ligne et au n° de numérotation)
    a = 0

    While a <= Lig 'TANT QUE la variable numero est <= ligne, la boucle est répétée
        Cells(numero, 1) = a 'Numérotation
        numero = numero + 1 'Le numéro est augmenté de 1 à chaque boucle
        a = a + 1
    Wend

    Sheets("INFOS").Select
    Range("A1").Select

    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With

End Sub
32userform.xlsm (236.92 Ko)

Il n'y a rien qui vous choque là dedans?

With Userform1
Set .Feuille = Worksheets("D_B")
.Show
End With
Unload Userform1

Vous ouvrez le userform et aussitôt après vous le refermez, pas étonnant que vous ne le voyez pas.

le problème ne viens pas de la car sans les modifications que vous m'avez dis t'apporter je le vois je peut rentrer les données et cliquez sur ok. une fois que j'ai cliquez sur ok il disparait.

Si je fait appelle à vous c'est que de base sa marche et pas que je ne voit pas depuis le début.

Dans la configuration que je vous es envoyé cela marche et je peut rentrer mes paramètres une fois passe le Showmodel sur False je ne le vois plus.

Si vous avez une solution je suis preneur même si il faut modifié une partie de la macro.

Merci

Dans un de vos post, vous avez écrit ceci:

Dans les 2 cas ceci ne me fait même pas apparaître l'user form.

et dans un autre:

J'ai essayer mais sa ne l'affiche pas

et encore un dans autre:

j'ai repris votre exemple et en mettant ShowModal à False l'user forme ne s'affiche pas et pareil pour Userform.Show 0

Donc par 3 fois vous dites que vous ne voyez pas l'userform,, alors comment faites -vous pour y saisir des données ?

Après quelques tests :

avec ce code ( Sub suppression_levé_de_pied()) :

.../...
With Userform1
    Set .Feuille = Worksheets("D_B")
    .Show
End With
  Unload Userform1
.../...

Si la userform est "modal" :

Userform1 est chargé et affiché par .Show, et la "main" passe à la userform. Dès qu'on quitte la userform, on revient sur ce code et l'instruction Unload Userform1 est exécutée (inutilement puisque la userform est déjà fermée...)

Si la userform est "non modal" (par modification propriété ou .Show 0) :

.Show (ou .Show 0) affiche l'userform, mais conserve la main et exécute aussitôt Unload Userform1 .

Donc pour que ça fonctionne, dans le code de lancement :

-Supprimer Unload Userform1

-Utiliser .Show 0 sans modifier la propriété ShowModal

ou

-Utiliser .Show et modifier la propriété ShowModal à False

par 3 fois je ne vois pas l'userform avec vos solutions.

Ok merci c'est nickel

Bonjour,
Je reviens vers vous car après analyse j'ai aperçu que la macro continué sans que l'userform ne se sois exécuté.

J'ai mis un stop dans le module D_110 qui dois s'exécuté après la validation de l'userform et le problème c'est que l'userform ne s'exécute que à la fin.

Es ce que quelqu'un pourrais m'aider sur ce problème?

Merci

SI vous ne voulez pas que la macro continue après l'affichage de la userform, le plus simple est de ne pas mettre de code après l'instruction UserForm1.show.

Le code restant sera reporté dans la sub déclenchée en quittant la userform (Private Sub UserForm_QueryClose...) par exemple.

On ne doit pas avoir la même version de classeur, je n'ai pas vu d'appel à la Sub D_110() ....

Rechercher des sujets similaires à "user form arriere plan"