Modification Macro VBA

Bonjour,

dans le cadre proffessionnel jutilise un fichier excel avec un code VBA assez complexe fait par un ancien collegue. Je n'arrive pas à modifier ce code pour rajouter de nouvelle activité. Ce code à été créer sous excel 2003 et était limité par le nombre de colonne. J'ai converti le fichier en excel 2007, ce qui fait que je ne suis plus bloqué par ce problème.

Dans un premier temps, dans l'onglet dossier activite je souhaiterai rajouter des activités (voir onglet feuil1), le problème est que si je rajoute une activite cela me fait un débugage à partir du vendredi dans l'onglet Listing quand nous voulons faire la saisie et si j'en rajoute plus le débugage se fait dès le premier jour de la semaine.

Je ne suis pas un pro en VBA, j'ai fait quelque test non concluant. Si quelqu'un peux m'aider?

Merci beaucoup,

17effectif-s21.xlsm (166.87 Ko)

Bonjour

Pour que je comprenne comment tu fonctionnes, peux-tu me donner un exemple de marche à suivre pour avoir le bug en question

Crdlt

Mode opératoir : Il faut saisie les heures dans l'onglet listing, en clic droit sur le jour souhaité puis clic droit sur la personne a saisir.

J'ai mis a 0 et ajouté une activité sur ce nouveau fichier et le premier message d'alerte apparait lors de la mise a 0 (clic gauche dans le rond du logo STEF - puis selectionner RAZ)

Après l'enregistrement lors du clic droit sur la saisie pour une personne le debogage apparait.

11effectif-stest.xlsm (162.17 Ko)

re

Dans l'USF Saisie, essaie en modifiant le code comme suit :

Dim lien(11, 11, 12) As Integer
Dim jour As byte
Dim lig As Integer
Dim ctrl(140) As Control
Dim i_ctrl, t_ctrl, max_ctrl As Integer
Sub lecture_matrice()
Dim tab_i(11) As Byte
Worksheets("listing").Select
  For d = 0 To 11
    For a = 0 To 11
      For i = 0 To 12
        lien(d, a, i) = 0
      Next i
    Next a
  Next d
  For i = 0 To 11
    tab_i(i) = 0
  Next i
  For c = 41 To Cells(12, Columns.Count).End(xlToLeft).Column

    tamp = Cells(12, c).Value
    If tamp <> "" Then
      If Left(tamp, 1) = Chr(jour + 64) Then
        If Mid(tamp, 2, 1) = ":" Then
          lien(Mid(tamp, 3, 2), 0, 11) = c
        Else

          i = Mid(tamp, 6, 2)
          tab_i(i) = tab_i(i) + 1
          lien(Mid(tamp, 3, 2), Mid(tamp, 6, 2), tab_i(i)) = c

        End If
      End If

    End If
  Next c

End Sub

A te relire

Si ok, merci de cloturer le fil

Crdlt

Bonjour,

j'ai modifié la macro en suivant vos indications. Je n'ai plus le message d'erreur bloquant.

Par contre j'ai saise donc une nouvelle Activité et son détail (Onglet dossier activite ligne 13 et 23), les colonnes se créent bien dans le tableau, mais lors de la saise des heures en exécutant la macro (clic droit dans la case d'un personne) le nouvel onglet devrait apparaitre dans le dossier Copack. Mais il n'apparait pas.

De plus j'ai essayé en ajoutant une seconde activité en plus (Onglet dossier activite ligne 14 et 24) et la en plus j'ai le debogage qui revient.

Merci encore pour le temps que vous passez pour résoudre mon problème.

Je reste a disposition pour complément d'information,

Cdt,

Éric.

16effectif-s211.xlsm (161.41 Ko)

re

J'ai un peu peine à comprendre le fonctionnement de ton fichier et de plus, celui qui a programmé est allé changer le nom THISWORKBOOK en Macro feuille ! Jamais vu cela !

Il faudrait que tu me dises pas à pas ce que tu fais afin que je reproduise les erreurs.

une nouvelle Activité et son détail (Onglet dossier activite ligne 13 et 23),

Ok pour ligne 13 mais 23 ??? quelle colonne ?

les colonnes se créent bien dans le tableau

Comment procèdes-tu ?clique sur le bouton ?

A te relire

Ok pas de souci,

Je dois ajouter plusieurs Activité dans l'onglet "DOSSIER ACTIVITE" Colonne F,G,H,I

De ces activités je dois créer le "Détail" Colonne L,M,N,O.

Dans le dernier fichier joint j'avais ajouté 2 lignes en Activité

Copack Copack Stick UVC AUTO Stick UVC AUTO

Copack Copack DECO RECO DECO RECO

et 2 lignes en Détail

Stick UVC AUTO Stick UVC AUTO Stick UVC AUTO Stick UVC AUTO

DECO RECO DECO RECO DECO RECO DECO RECO

Une fois les ajouts fait il faut retourner dans l'onglet LISTING, clic gauche dans le rond de STEF, RAZ,effacer toute la semaine.

Cela va mettre à jour toutes les données sur cette feuille.

Une nouvelle activité ajoute 7 colonnes dans cette feuille (Dim=A,Lun=B,Mar=C,etc) Exemple DECO RECO de la colonne IX à JD.

Une fois la mise a jour terminé, on passe a la saisie:

Exemple:

Clic droit dans le jour souhaité (Lundi = clic D en I13 -> la case devient rouge)

Saise des info par personne, (1er personne A clic D en B14) une boite de dialogue souvre avec toutes les activites dans lesquelles nous allons saisir les heures effectuées.

Pour voir la boite de dialogue sans debogage, il faut retirer les 2 Activité et Détail ajouté dans l'onglet DOSSIER ACTIVITE (Stick UVC AUTO et DECO RECO) et refaire une mise ajour dans l'onglet listing.

Je sais que c'est très complexe, alors n'hésité pas à me demander des précisions. Je suis en congé jusqu'a Lundi inclu, je reprendrai mes mail dès mardi.

Merci beaucoup pour votre aide

Rechercher des sujets similaires à "modification macro vba"