[365] Incrementer Userform

Bonjour à tous

Je reviens vers vous, après plusieurs recherche sur le forum et autres car je n'arrive pas à remplir les données d'un Userform depuis un tableau structuré.

J'ai 3 Feuilles

Tableau de bord

DataBase

Administrateur

Dans la feuille tableau de bord, j'ouvre un Userform avec Btn nouvelle saisie -> ca OK

Dans Feuille DataBase je souhaite:

1- Quand je clic sur une une cellule du tableau ouvrir la même userform -> ca OK

2- l'userform doit se charger avec toutes infos de la ligne -> Pas OK

3- le Btn Effacer efface la ligne -> Pas OK

4- Le Btn Validation Modification fait un nouvelle enregistrement de la ligne modifiée-> Pas OK

Pour le Spinbouton serait -il possible de faire défiler les ligne amont ou aval.

Voila espère que la demande n'est pas trop importante et que je suis clair

Je bloque depuis une semaine depuis le point N°2

Merci de votre aide

Ledzep

212019-v1-ledzep.xlsm (212.24 Ko)

Bonjour,

Un essai ...

Le double-clic sur le tableau de la feuille "DataBase" appelle le formulaire :

  • les données de la ligne sélectionnée s'affichent dans le formulaire,
  • les spinbutton fonctionnent,
  • le bouton Modification fonctionne,
  • il manquait un i à Exploitation en B4,
  • il manquait un i dans le nom "TxtPriorite" dans le formulaire.

Si l'on fait un double clique n'importe où sur la feuille "Tableau De Bord", il persiste un bogue ... je n'ai pas tenté d'en trouver la source.

ric

122019-v2-ledzep.xlsm (212.07 Ko)

Bonsoir à tous

Bonsoir ric

je regarde cela demain , trop fatigué ce dimanche

Merci pour ton retour et merci pour la correction des i

Bonne soirée à tous

Ledzep

Bonsoir à tous

J'ai commencé aujourd'hui la vérification du nouveau fichier 2019 V2 Ledzep en retour de ric que je remercie de m'avoir répondu.

Le bugue vient qu'il ne faut pas que j'utilise le même btn effacer ds

Nouvelle saisie Feuille tableau de bord

et

Quand on fait un appel de ligne à modifier ds la feuille Database.

En fait cela est incompatible, il faut plutôt supprimer la ligne que j'ai sélectionnée.

Je m'y remet

Si proposition il y a je suis preneur

Merci de votre aide

Ledzep

Bonjour à tous

J'ai 2 soucis avec mon fichier ou je "patoge" pas mal

1- Je n'ai toujours pas réussi à trouver la solution pour rendre active le Btn Delete Ligne

2- Je recherche dans la feuille Tableau de bord:

Je sélectionne Début S14 Fin S15 ds Choix extraction SDO ça ok

Je valide par Btn Validation Extraction ça ok

jusque là cela fonctionne très bien

Maintenant j'aimerai que l'extraction prenne aussi les semaines précédentes non CLOT

En espérant que ma demande soit claire

Merci de votre aide

Bonne journée

102019-v13.xlsm (178.45 Ko)

Bonjour

Voici un début de résolution pour le Btn delete ligne

Dim oLig As Integer

Private Sub BtnDeltLigne_Click()

oDlig = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row
Selection.Delete Shift:=xlUp

End Sub

Si je clic sur une ligne ds DataBase -> j'ai ouverture de Userform Saisie

Dans Userfor Saisie si je valide par Btn delete Ligne alors ligne supprimée

Par ,contre avec le SpinButton1_SpinUp et Down

Comment avoir le même résultat ?

Merci de vos réponses

Bonne journée

Ledzep

Bonjour,

J'ai codé la suppression d'une ligne et ça fonctionne bien.

Mais, car il y a toujours un "mais", ça provoque une erreur sur

If LCase(Target.Formula) = LCase(datas(i, 1)) Or LCase(Target.Formula) = LCase(datas(i, 3)) Then de Workbook_SheetChange

Je t'envoie le fichier dès que j'aurais corrigé cette nouvelle erreur.

ric

bonjour à tous

Bonjour ric

merci de ton aide

pour ma part le code que j'ai écrit ne provoque pas d'erreur , par contre je n'est pas trouvé le moyen pour l’instant de me déplacer

par ligne.

Si on arrive à faire déplacer par une méthode range depuis le spinbouton pour avoir le déplacement de la sélection de la cellule, alors le code va fonctionner sans provoquer d'erreur

Je continu mes investigations

bonne fin de journée

Ledzep

Bonjour,

... le code que j'ai écrit ne provoque pas d'erreur ...

Est-ce que tu as tenté de supprimer manuellement une ligne dans le tableau de la feuille "DataBase" ?

Clique droit sur une cellule dans le tableau > Supprimer > Lignes de tableau.

Tu n'obtiens pas d'erreur ?????????????????????

ric

Bonjour

Pour répondre à ric

Non pas d'erreur

J'espére que tu utilises le fichier 2019 V13.xlsm

a plus

Ledzep

Bonjour,

L'essai de supprimer une ligne, l'on parle bien de la feuille "DataBase" ?

Car, je viens de télécharger à nouveau ton fichier du post de > Hier, 03:32 ...

Je positionne le curseur dans la cellule B10 de la feuille "DataBase" (comme exemple) > clique droit > Supprimer > Lignes de tableau > en supprimant cette ligne, j'ai bien une erreur.

L'erreur semble provenir du fait qu'en supprimant la ligne, Target a changé. (pas trop sûr)

ric

bonsoir

Ric

J'ai mis le code ds ce fichier, j'ai éffectué plusieurs surpressions avec usrform btn Delete ligne ou directement en sélectionnant une ligne ras pas de défaut du code.

Je t'ai mis le fichier

Bonne soirée

Ledzep

Bonjour,

Merci, je regarde cela...

ric

Bonjour,

J'ai quand même fait un pas ... j'ai observé que ...

Sur Excel 365, en supprimant une ligne, j'obtiens le message d'erreur.

Sur Excel 2007, ça fonctionne impeccablement.

Il ne me reste donc qu'à trouver ce qui pose problème sur ma machine.

En attendant les lumières célestes, je t'envoie le fichier.

Sur cette version, le formulaire gère bien l'effacement de ligne, même si l'on se déplace via les SpinButton.

Le code n'a pas nécessairement été nettoyé.

Je reste attentif à tes commentaires.

ric

Bonjour,

Bon c'est corrigé ...

Application.EnableEvents = False

avant la suppression de ligne

Application.EnableEvents = True

après la suppression de ligne.

J'ai aussi constaté que j'avais oublié d'actualiser les infos dans le formulaire, à la fin de la macro de suppression de ligne. Sinon, ce sont les infos de la ligne supprimée qui restaient à l'écran.

ric

Bonsoir à tous

Bonsoir ric

Bravo je m'en suis aperçu jeudi quand j'ai préparé la semaine 16

En effet j'ai voulu modifier sur une ligne le numéro de semaine et là je me suis aperçu que la date ne changée pas.

J'ai pris 5 minutes mais pas trouvé la réponse (encore trop faible ds le codage, mais j'apprends avec forum et mon projet)

J'ai fouillé sur le forum, mais pas encore trouvé le moyen de visualiser la ligne active par une bordure rouge par exemple.

As tu une piste ou un exemple à me proposé stp ?

Dans tous les cas merci de ton aide qui fait progresser mon fichier et mon apprentissage.

Bonne soirée à tous

Bonne soirée ric

Ledzep

Bonjour,

Est-ce que tu parles toujours du "Formulaire de Saisie" ??

Si oui, je regarde cela...

Une bordure rouge ou une façon quelconque de bien visualiser la ligne du tableau dont les infos du formulaire font référence.

ric

Bonjour à tous

Oui c'est bien cela.

ds la feuille database, à partir du moment que tu sélectionnes une ligne.

1 ouverture userform saisie. Ça c'est déjà ok

2 j'aimerai avoir la bordure colorée ou ligne en rouge.

3 si j'utilise le déplacement avec spinbouton idem.

Voilà

Bonne journée

Ledzep

Bonjour,

Sélectionner la cellule de la colonne B ... est-ce suffisant ?

Sub QuelleLigne()

   If ActiveSheet.Name = "Tableau De Bord" Or ActiveSheet.Name = "DataBase" Then
      With ActiveSheet
         Me.CboSecteur_Exploitation = .Cells(oLig, "B").Value
         Me.CboEquipement = .Cells(oLig, "C").Value
         Me.CboSocInt = .Cells(oLig, "D").Value
         Me.CboSocExt = .Cells(oLig, "E").Value
         Me.CboContact = .Cells(oLig, "F").Value
         Me.TxtNumTel = .Cells(oLig, "G").Value
         Me.TxtPriorite = .Cells(oLig, "H").Value
         Me.TxtDDO = .Cells(oLig, "i").Value
         Me.TxtDFO = .Cells(oLig, "J").Value
         Me.CboNumSemPTot = .Cells(oLig, "K").Value
         Me.CboNumSemPTard = .Cells(oLig, "L").Value
         Me.CboEtat = .Cells(oLig, "M").Value
         .Cells(oLig, "B").Select   ' < sélection de la ligne en colonne B
      End With
   End If
End Sub

ric

bonjour à tous

J'ai continué sur la proposition du poste de ric par

Sub QuelleLigne()

   If ActiveSheet.Name = "Tableau De Bord" Or ActiveSheet.Name = "DataBase" Then

      With ActiveSheet
         Me.CboSecteur_Exploitation = .Cells(oLig, "B").Value
         Me.CboEquipement = .Cells(oLig, "C").Value
         Me.CboSocInt = .Cells(oLig, "D").Value
         Me.CboSocExt = .Cells(oLig, "E").Value
         Me.CboContact = .Cells(oLig, "F").Value
         Me.TxtNumTel = .Cells(oLig, "G").Value
         Me.TxtPriorite = .Cells(oLig, "H").Value
         Me.TxtDDO = .Cells(oLig, "i").Value
         Me.TxtDFO = .Cells(oLig, "J").Value
         Me.CboNumSemPTot = .Cells(oLig, "K").Value
         Me.CboNumSemPTard = .Cells(oLig, "L").Value
         Me.CboEtat = .Cells(oLig, "M").Value

         .Cells(oLig, "B").Resize(1, 12).Select    ' <sélection de la ligne en colonne B jusque colonne M
         With Selection
           .Interior.Color = RGB(255, 251, 197) ' Couleur Jaune
         End With

      End With
   End If
End Sub

Ce qui me boque c'est mainteneant que la ligne précédente reste en jaune après avoir changé de ligne

si j'utilise if then else , c'est la bonne piste ?

Merci de votre aide

Ledzep

Rechercher des sujets similaires à "365 incrementer userform"