Formulaire Obligatoire

Bonjour tout le monde !!

Je viens vers vous pour vous poser une petite question ... j'ai un tableau Excel et sur ce tableau j'aimerai qu'aucune ligne ne puisse être remplie sans passer par un formulaire

Genre j'ouvre mon fichier Excel tout est normal et quand je clique sur une ligne ca m'ouvre un formulaire et je remplie le fichier comme ça !

J'ai trouvé la commande formulaire mais malheureusement pour moi ca ne le rends pas automatique ;)

Je suppose qu'il faut passer par un code VBA non ?

Merci d'avance de votre réponse

Bonjour
Oui il faut passer par du vba

un fichier est TOUJOURS le bienvenu

A+ François

Oui je vais mettre le fichier avec désolé

C'est un fichier qui nous sert à gérer nos ECME

Je me suis lancer aussi pour trouver un moyen de faire un message d'alerte 30j avant la fin de la validité

Bonjour,

Pour le formulaire dont vous parlez, c'est cette commande-ci

Sheets("ECME").ShowDataForm

A lier à un bouton à placer sur votre feuille.
Autre option : le lier à la sélection d'une cellule dans votre feuille. Par exemple, à la sélection d'une cellule non vide de la colonne A

A voir ce que vous désirez

Rem : ce formulaire est souvent oublié mais très simple à utiliser puisque vous n'avez besoin que d'une seule ligne de code pour l'utiliser

NB: Attention à ne pas laisser de lignes lorsque vous utilisez des tableaux au format structuré. Ce n'est jamais à faire et inutile. L'ajout de ligne se fait toujours automatiquement

Cordialement


EDIT : Important : vous devez défusionner votre cellule en B2. Sans quoi le code va renvoyer une erreur. (comme toujours, il faut éviter les fusions, sans quoi c'est souvent les problèmes)
Si vous voulez centrer, sélectionnez vos cellules B2 à Bx, puis allez dans Accueil --> Alignement et choisir "centrer sur plusieurs colonnes" dans l'option Horizontal

Salut bob84

Vous avez bien commencé, dans votre feuille ECME, vous ajoutez l'évènement "SelectionChange"

Dim Tbl As ListObject
Dim CelluleDeclencheur As Range

Private Sub Worksheet_Change(ByVal Target As Range)
  On Error GoTo Fin
  Set Tbl = Me.ListObjects("Tableau1")
  ' Déclenche uniquement lorsque la colonne "Site" est modifiée
  Set CelluleDeclencheur = Intersect(Target, Tbl.ListColumns("Site").DataBodyRange)
  If CelluleDeclencheur Is Nothing Then Exit Sub
  Application.EnableEvents = False
  Application.ScreenUpdating = False
  With Tbl.Sort
      .SortFields.Clear
      .SortFields.Add _
          Key:=Tbl.ListColumns("Type d'équipement").Range, _
          SortOn:=xlSortOnValues, _
          Order:=xlAscending, _
          DataOption:=xlSortNormal

      .Header = xlYes
      .Apply
  End With
Fin:
  Application.ScreenUpdating = True
  Application.EnableEvents = True

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Set Tbl = Me.ListObjects("Tableau1")
  ' Déclenche uniquement lorsque la colonne "Site" est modifiée
  Set CelluleDeclencheur = Intersect(Target, Tbl.DataBodyRange)
  ' Si pas de déclenchement on sort
  If CelluleDeclencheur Is Nothing Then Exit Sub
  ' Message de déclenchement
  MsgBox "Déclenchement"
End Sub

Ensuite, vous passez soit par un USF (un peu compliqué à construire) ou par une feuille "Formulaire" avec les cellules dédiées aux différents champs nécessaires

A+

re

Au fait, que voulez-vous dire par

J'ai trouvé la commande formulaire mais malheureusement pour moi ca ne le rends pas automatique ;)

Crdlt


EDIT : Il y a tout de même un souci avec la commande que je vous ai donnée pour votre fichier. Pour qu'elle fonctionne il faut mettre vos titres du tableau en ligne 1.
Dans votre cas, utilisez plutôt ceci qui fonctionne :

Application.DisplayAlerts = False
CommandBars.FindControl(ID:=860).Execute
Application.DisplayAlerts = True

Vous pouvez mettre aussi ces 3 lignes d'instructions en lieu et place de la ligne MSGBOX "déclenchement" dans le code SLECTIONCHANGE proposé par Excel2FR

Bonjour

Ci joint ma solution

A+ François

Merci à tout les deux pour vos réponses !!!!

@JExceL2FR : merci pour le code je vais tester ça !!

@Dan : je parle de l'onglet questionnaire que j'ai mis dans la barre de tâche (rien de bien sorcier je vous l'accorde lol)

re

@Dan : je parle de l'onglet questionnaire que j'ai mis dans la barre de tâche (rien de bien sorcier je vous l'accorde lol)

Heu.... je ne vois pas mais bon pas grave. Je suppose qu'il s'agit du formulaire dont je parle dans mes messages

Re,

Voici ma solution, simple, basique

A tester tout de même

A+

@JExceL2FR : juste une petite question (encore une dsl) dans mon fichier de base j'avais fais une petite macro pour que ca se classe automatiquement par ordre alphabétique c'est possible de compiler les deux ? car dans votre fichier elle ne se fait plus la ligne reste en derniere position

@Fanfan38 : merci pour le fichier ! ça m'affiche une erreur 308 il faut que je regarde lol

J'ai relancé le programme et je n'ai pas d'erreur

A quelle moment l'erreur

As tu un bouton Débogage (si oui clic dessus pour savoir quelle ligne pose problème)

A+ François

Ahhh c'est Userform1.show c'est parce qu'il faut définir le formulaire ?

Rechercher des sujets similaires à "formulaire obligatoire"