Besoin aide urgente de ffo

Bonjour FFO,

Merci de bien vouloir répondre à ce post afin que je puisse t’expliquer mon problème dans mon dossier STP.

A bientôt j’espère.

Cdt Rubis57

Bonjour

Tu peux exposer ton problème dors et déjà mais je suis sur le départ et ne pourrais y répondre que ce soir ou demain

Au plaisir de te lire

Bonjour et Merci d’avoir répondu.

Ne t’embêtes pas, tu n’as qu’a répondre quand tu seras de retour.

A+ Rubis57

Répondre à quoi ?
Merci d’exposé ton soucis en attendant

OK,

alors voila.

Tu m’avais mis en place le système avec le planning de mon fichier. cela fonctionnait très bien.

Maintenant j’aurai aimé avoir un bouton sur la page « ACCUEIL PILOTE RESTAURATION » du fichier TDB ci-joint, qui, lorsque je clique dessus m’affiche le userform « DESERVICE » qui m’indique qui est de service aujourd’hui.

Or, pour l’instant plus rien ne fonctionne, j’ai du faire une erreur quelque part.

Je voudrai qu’il prenne les infos dans le fichier « PLANNING SALARIES » page « PLANNING » et qu’il les affiche dans le userform « DESERVICE » qui se trouve dans le fichier « TDB »

J’espère que j’ai bien expliqué, sinon dis moi.

Je te remercie d’avance de bien vouloir y jeter un oeil et voir ce qui ne va pas afin que mon userform fonctionne.

A+
Rubis57

PLANNING SALARIES.xlsm (130,6 Ko)
TDB.xlsm (255,0 Ko)

Bonsoir

D’un bref coup d’oeil sur ton fichier « TDB .xlsm » lorsque tu dis que plus rien ne fonctionne j’ai un certain nombre de boutons qui sont toujours opérationnels
Pour d’autre qui ne le sont pas j’ai déjà constaté que leur traitement fait appel à un onglet inexistant « Personnel »

exemple ici :

une ligne de code cherche à le nettoyer

Sheets(« Personnel »).Cells.Clear

Qu’en est il de cet onglet qui a disparu

Peut être qu’à lui seul de par sa défectuosité il est responsable de tous tes déboires

Merci de m’en dire plus à son sujet

Bonsoir FFO,

Merci pour ton retour.

l’onglet Personnel ne fais plus parti du fichier. Donc je crois qu’on peut effacer les lignes de cet onglet dans le code « SAISIR HEURES »

Mon souhait serait de mettre un bouton sur la page « ACCUEIL PILOTE RESTAURATION » qui m’ouvre un userform qui existe deja qui se nomme DESERVICE pour m’afficher qui est de service aujourd’hui. Il devrait prendre les données dans le fichier PLANNING SALARIES page Planning.

Est ce possible ?

Merci à toi pour ta réponse

Rubis57

Je regarde demain et te dis
Pour les lignes de code qui concerne l onglet « Personnel » ce sont des parties de traitement qui seront à supprimer
Dans la copie transmise à partir de la ligne surlignée tout est à supprimer car tout en decoule

Plusieurs traitements devront subir ce même nettoyage ce qui pourrait peut-être pour certain remettre en cause leur existence
C est à etudier pour chacun d eux

Bonjour FFO,

j’ai retrouvé le code VBA " SAISIR HEURES" comme tu l’avais fais à l’époque.

Ensuite la page « ACCUEIL PILOTE RESTAURATION » je l’ai laissée telle qu’elle est chez moi dans le dossier réel. Donc c’est sûr certains boutons ne fonctionnent pas tant que les fichiers ne sont pas dans le même dossier.

Mais tout fonctionnait très bien depuis des mois. ce n’est que hier que j’ai fais une erreur dans le fichier « TDB » en voulant ajouter ce code pour afficher le userform « DESERVICE ».

Voici le code comme tu l’avais mis:
Sub SAISIR_HEURES()

Application.ScreenUpdating = False
Sheets(« PLANNING »).Cells.Clear
Workbooks.Open (ThisWorkbook.Path & «  » & « PLANNING SALARIES.xlsm »)
Derligne = Range(« A » & Columns.Count).End(xlUp).Row
dercolonne = Cells(5, Columns.Count).End(xlToLeft).Column
ThisWorkbook.Sheets(« PLANNING »).Range(« A5 », Cells(Derligne, dercolonne).Address).Value = Range(« A5 », Cells(Derligne, dercolonne).Address).Value
Workbooks(« PLANNING SALARIES.xlsm »).Close (SavesChanges = False)
HEURES.ListBox1.List = Sheets(« PLANNING »).Range(« A5 », Sheets(« PLANNING »).Cells(Derligne, dercolonne).Address).Value
HEURES.Show

End Sub

Merci pour ton retour

Rubis57

Re,

voici le fichier « TDB » avec le bouton qui fonctionne et le vrai code de toi dans « SAISIR HEURES ».

A+

TDB.xlsm (255,0 Ko)

Re,
Le problème venait juste du nom d’une feuille
Teste
TDB.xlsm (236,1 Ko)

Re,

Ne fonctionne pas !

Voila ce qu’il me donne comme erreur :
1

Si je vais dans le vba et je clique sur le userform il y a ce code
Private Sub UserForm_initialize()
Me.TextBox1.Value = Format(Date, « dd/mm/yyyy »)

Set Ws = Sheets(« Planning »)
Set Wd = Sheets(« Personnel »)
Dl = Ws.Range(« B » & Rows.Count).End(xlUp).Row

For i = 5 To Dl Step 10
If VBA.Month(Ws.Cells(i, 2).Value) = VBA.Month(Me.TextBox1.Value) Then
Dc = Ws.Cells(i, Columns.Count).End(xlToLeft).Column
For J = 2 To Dc
If Ws.Cells(i, J).Value = Date Then
t = 2
For Lig = i + 1 To i + 6
If Ws.Cells(Lig, J).Value = « J » Or Ws.Cells(Lig, J).Value = « M » Or Ws.Cells(Lig, J).Value = « AM » Or Ws.Cells(Lig, J).Value = « F » Then

          For Each ctrl In Me.Controls
            If TypeName(ctrl) = "TextBox" Then
              Me("Textbox" & t).Value = Ws.Cells(Lig, "A").Value
              
              Me("Textbox" & t + 5).Value = Application.WorksheetFunction.Index(Wd.Range("J2:J17"), _
                Application.WorksheetFunction.Match(Ws.Cells(Lig, "A").Value, Wd.Range("Z2:Z17"), 0))
              If Ws.Cells(Lig, J).Value = "J" Then
                Me("Textbox" & t + 10).Value = "X"
              ElseIf Ws.Cells(Lig, J).Value = "M" Then
                Me("Textbox" & t + 15).Value = "X"
              ElseIf Ws.Cells(Lig, J).Value = "AM" Then
                Me("Textbox" & t + 20).Value = "X"
              ElseIf Ws.Cells(Lig, J).Value = "F" Then
                Me("Textbox" & t + 25).Value = "X"
              End If
            End If
          Next
          
        t = t + 1
        End If
        
      Next Lig
        
    End If
  Next J
End If

Next i

End Sub

Est-il vraiment adapté à mon fichier ?

Car le bouton « Personnel du jour » a le code suivant :

Sub Personneldujour()
Sheets(« Personnel »).Cells.Clear
Workbooks.Open (ThisWorkbook.Path & «  » & « GESTION PERSONNEL ET PAIE.xlsm »)
Derligne = Range(« A » & Columns.Count).End(xlUp).Row
dercolonne = Cells(1, Columns.Count).End(xlToLeft).Column
ThisWorkbook.Sheets(« Personnel »).Range(« A1 », Cells(Derligne, dercolonne).Address).Value = Range(« A1 », Cells(Derligne, dercolonne).Address).Value
Workbooks(« GESTION PERSONNEL ET PAIE.xlsm »).Close (SavesChanges = False)
'Appeler le formulaire DE SERVICE
DESERVICE.Show
End Sub

alors que le texte VBA du userform parle de « Planning »

Re,
Ecoute, je viens de la faire fonctionner
Je te remet le TDB avec l’ autre classeur
TDB.xlsm (242,8 Ko)
PLANNING SALARIES.xlsm (148,2 Ko)

Plus le troisième
GESTION PERSONNEL ET PAIE.xlsm (65,8 Ko)


Je pense que cette errue vient de ton classeur PLANNING SALARIES où il manque une ligne entre Janvier et fevrier

Re,

ça fonctionne, ouf !

Donc une dernière question pour comprendre :

Tout se passe entre le TDB et le PLANNING SALARIES ou alors le TDB avec le GESTION PERSONNEL ET PAIE ?

Avec les deux
Quand tu cherches Personnel du Jour, c’est TDB et GESTION PERSO et PLANNING
et TDB et PLANNING pour Saisie des salariés

Et l’erreur venait de ma part sur un onglet qui était vide mais qui se remplit par macro d’un autre module

Voilà le Classeur TDB avec masquage du menu EXCEL
TDB (sans le menu EXCEL).xlsm (262,5 Ko)

Y a pas de soucis Mimimathy. OK je comprends mieux maintenant.

Par contre j’ai vu que si je modifie par exemple le planning d’un salarié il faut que je clique ensuite sur le bouton SAISIE DES SALARIES… afin que le userform DESERVICE se mette à jour c’est correct ?

Ouais, je regarde cela

Je viens de tester
Je clique sur PLANNING SALARIES, je modifie, je quitte et le classeur s’enregistre, les deux USF sont à jour