Aide pour un Gantt sous Excel
Résolu/Fermé
A voir également:
- Aide pour un Gantt sous Excel
- Liste déroulante excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Si et excel - Guide
- Gantt project gratuit - Télécharger - Gestion de projets
- Aller à la ligne excel - Guide
13 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 711
6 juil. 2012 à 22:25
6 juil. 2012 à 22:25
bonjour,
Pourrais-tu préciser ta question car je ne vois pas bien ce que tu veux faire.
Pourrais-tu préciser ta question car je ne vois pas bien ce que tu veux faire.
Raymond PENTIER
Messages postés
58762
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
17 décembre 2024
17 254
7 juil. 2012 à 14:57
7 juil. 2012 à 14:57
Bonjour Ben.
Ta grille de planning étant vierge (ni données, ni couleurs de remplissage), tu procèdes ainsi :
1) Avec la touche [ctrl] maintenue enfoncée, tu sélectionnes les cellules E7 à K7, J10 à K10, J13 à L13 ; tu relâches [ctrl].
2) Tu tapes "A", tu appuies sur [ctrl] et [enter] : tes 12 cellules affichent A.
3) Tu fais de même pour B et C (tes cellules actuellement violettes et orange).
4) Tu utilises la Mise en forme conditionnelle pour colorer les cellules non-vides :
-a- Sélectionner la feuille, ou la plage A5:AF32.
-b- Activer Mise en forme conditionnelle. Dans Nouvelle règle choisir la deuxième règle "Appliquer une MF uniquement aux cellules qui contiennent" ; conserver l'option Valeur de la cellule mais remplacer comprise entre par égale à et saisir "A" dans la troisième case.
-c- Cliquer sur Format/Remplissage, sélectionner le bleu, faire deux fois "OK".
-d- Recommencer les instructions b et c avec "B" et la couleur violette
-e- Recommencer les instructions b et c avec "C" et la couleur orange.
C'est tout ; tu peux cliquer n'importe où pour enlever la surbrillance de sélection.
Chaque fois que tu taperas A dans une cellule, elle passera au bleu ; ou B, elle deviendra violette ; et C, elle sera orange -> https://www.cjoint.com/?BGho4imkagQ
Cordialement.
Ta grille de planning étant vierge (ni données, ni couleurs de remplissage), tu procèdes ainsi :
1) Avec la touche [ctrl] maintenue enfoncée, tu sélectionnes les cellules E7 à K7, J10 à K10, J13 à L13 ; tu relâches [ctrl].
2) Tu tapes "A", tu appuies sur [ctrl] et [enter] : tes 12 cellules affichent A.
3) Tu fais de même pour B et C (tes cellules actuellement violettes et orange).
4) Tu utilises la Mise en forme conditionnelle pour colorer les cellules non-vides :
-a- Sélectionner la feuille, ou la plage A5:AF32.
-b- Activer Mise en forme conditionnelle. Dans Nouvelle règle choisir la deuxième règle "Appliquer une MF uniquement aux cellules qui contiennent" ; conserver l'option Valeur de la cellule mais remplacer comprise entre par égale à et saisir "A" dans la troisième case.
-c- Cliquer sur Format/Remplissage, sélectionner le bleu, faire deux fois "OK".
-d- Recommencer les instructions b et c avec "B" et la couleur violette
-e- Recommencer les instructions b et c avec "C" et la couleur orange.
C'est tout ; tu peux cliquer n'importe où pour enlever la surbrillance de sélection.
Chaque fois que tu taperas A dans une cellule, elle passera au bleu ; ou B, elle deviendra violette ; et C, elle sera orange -> https://www.cjoint.com/?BGho4imkagQ
Cordialement.
Raymond PENTIER
Messages postés
58762
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
17 décembre 2024
17 254
7 juil. 2012 à 15:16
7 juil. 2012 à 15:16
Je te signale que dans la plage B22:C32 tu as un mélange de textes (B22) qui sont alignés à gauche et de nombres (B24) qui sont alignés à droite.
Cela te posera problème quand tu voudras utiliser ces dates pour automatiser ton planning !
Cela te posera problème quand tu voudras utiliser ces dates pour automatiser ton planning !
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
23 juil. 2012 à 16:37
23 juil. 2012 à 16:37
Bonjour,
Excusez l'intrusion (salutations Raymond), est-ce que votre procédure est utilisable sur votre fichier exemple (https://www.cjoint.com/?BGxknr4wraz du poste 11 .... ?
Excusez l'intrusion (salutations Raymond), est-ce que votre procédure est utilisable sur votre fichier exemple (https://www.cjoint.com/?BGxknr4wraz du poste 11 .... ?
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
23 juil. 2012 à 23:05
23 juil. 2012 à 23:05
Bonjour,
Ne pouvant strictement rien faire avec votre code, voici ma proposition : https://www.cjoint.com/?3GxxeKBYbR8
Ne pouvant strictement rien faire avec votre code, voici ma proposition : https://www.cjoint.com/?3GxxeKBYbR8
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
24 juil. 2012 à 16:37
24 juil. 2012 à 16:37
Bonjour,
Je viens d'étudier votre procédure [Sub macrotest()] et je constate que vous avez inséré mon code sans tenir compte qu'il traite les données d'une personne en un seul bloc et pas morceau par morceau. Dans votre cas par exemple le premier est [Perso A / Y. (Yousaf) / ] sans les dates dans ce cas mon code tourne dans le vide sans provoquer d'erreur puisque les la base est vide.
J'attends vos corrections des dates pour continuer.
Note, il faut traiter les données de la feuille [DATAS] d'un seul coup et non pas déplacer des données d'une feuille à l'autre ce qui est inutile.
Je viens d'étudier votre procédure [Sub macrotest()] et je constate que vous avez inséré mon code sans tenir compte qu'il traite les données d'une personne en un seul bloc et pas morceau par morceau. Dans votre cas par exemple le premier est [Perso A / Y. (Yousaf) / ] sans les dates dans ce cas mon code tourne dans le vide sans provoquer d'erreur puisque les la base est vide.
J'attends vos corrections des dates pour continuer.
Note, il faut traiter les données de la feuille [DATAS] d'un seul coup et non pas déplacer des données d'une feuille à l'autre ce qui est inutile.
Je ne comprends pas que les dates n'aient pas étés corrigées dans la feuille "DATAS"... On parle bien de la meme chose (Format cellule/type/date) ?
Je l'ai deja changé 2 fois(manuellement), et sur mon fichier toutes les dates sont en format date (Erreur de convertion excel version anglaise-francaise ?)
J utilise le copier coller de feuille pour garder le format de la feuille et surtout garder toutes ses propriétés (etiquettes, MFC, etc), j'ai essayé bien sur sans copier coller, mais je perdais des informations importantes.
Je ne comprends pas pourquoi le code tourne dans le vide, puisqu il est intégré dans la boucle SI,'au niveau de la sortie, et que normalement la "base" s'est remplie quelques lignes plus haut ...
Je l'ai deja changé 2 fois(manuellement), et sur mon fichier toutes les dates sont en format date (Erreur de convertion excel version anglaise-francaise ?)
J utilise le copier coller de feuille pour garder le format de la feuille et surtout garder toutes ses propriétés (etiquettes, MFC, etc), j'ai essayé bien sur sans copier coller, mais je perdais des informations importantes.
Je ne comprends pas pourquoi le code tourne dans le vide, puisqu il est intégré dans la boucle SI,'au niveau de la sortie, et que normalement la "base" s'est remplie quelques lignes plus haut ...
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
25 juil. 2012 à 11:12
25 juil. 2012 à 11:12
Bonjour,
Bravo.
En marge j'ai créé une autre version de mon crû : https://www.cjoint.com/?3GzlkjRb7Aq
La commande se trouve sur la feuille [Format].
Bravo.
En marge j'ai créé une autre version de mon crû : https://www.cjoint.com/?3GzlkjRb7Aq
La commande se trouve sur la feuille [Format].
Salut la compagnie!
Bon grace a la MFC et et quelque ligne de code j'arrive à ce resultat ...
Mais maintenant j aimerai que les dates contenues entre E23 et F39 dans cet exemple, soient reconnues par le planning, et s affichent dedans ....
Est ce possible ?
http://cjoint.com/?BGkq7inPATF
Bon grace a la MFC et et quelque ligne de code j'arrive à ce resultat ...
Mais maintenant j aimerai que les dates contenues entre E23 et F39 dans cet exemple, soient reconnues par le planning, et s affichent dedans ....
Est ce possible ?
http://cjoint.com/?BGkq7inPATF
Raymond PENTIER
Messages postés
58762
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
17 décembre 2024
17 254
10 juil. 2012 à 23:57
10 juil. 2012 à 23:57
Bonjour.
Ton fichier ayant été créé avec une version anglaise d'excel, cela complique les opérations ...
Ton fichier ayant été créé avec une version anglaise d'excel, cela complique les opérations ...
Personne pour m aider pour la suite ?
il faudrait juste automatiser le planning !
il faudrait juste automatiser le planning !
Raymond PENTIER
Messages postés
58762
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
17 décembre 2024
17 254
13 juil. 2012 à 13:44
13 juil. 2012 à 13:44
Juste ? Ce n'est pas le plus simple !
Surtout que tu n'as même pas préparé ton fichier correctement, puisque ma recommandation du 7 juil. 2012 à 15:16 est restée lettre morte ...
De plus ton mélange d'anglais et de français ne facilite pas les choses ...
On ne sait pas à quoi servent les nombres en H23:I39.
Enfin je n'ai pas bien compris ce que tu veux obtenir concrètement quand tu écris "Mais maintenant j aimerai que les dates contenues entre E23 et F39 dans cet exemple, soient reconnues par le planning, et s affichent dedans" : donne un exemple précis, en précisant ce qui doit être affiché dans chacune des cellules G5, V5, V6, E7, E16, N16.
Surtout que tu n'as même pas préparé ton fichier correctement, puisque ma recommandation du 7 juil. 2012 à 15:16 est restée lettre morte ...
De plus ton mélange d'anglais et de français ne facilite pas les choses ...
On ne sait pas à quoi servent les nombres en H23:I39.
Enfin je n'ai pas bien compris ce que tu veux obtenir concrètement quand tu écris "Mais maintenant j aimerai que les dates contenues entre E23 et F39 dans cet exemple, soient reconnues par le planning, et s affichent dedans" : donne un exemple précis, en précisant ce qui doit être affiché dans chacune des cellules G5, V5, V6, E7, E16, N16.
Bonjour Raymond,
Desolé de te repondre si tard mais l'entreprise etait fermée pour une semaine.
Concernant tes recommendations , elles avaient été prises en compte dans mon fichier de travail, mais absentes dans le fichier exemple que je t avais fournis (désolé)
Pour l anglais francais, je n'y peux pas grand chose, toutes les données sont en hollandais, j'ai essayé de traduire un maximum pour l equipe (on travaile en anglais) et ne pas trop utiliser de francais...
Pour les infos presentes dans le document, eles sont confidentielles, mais je peux essayer de t expliquer un peu plus en details :
a partir de la ligne 21;
col B et C : nom de la personne
col D : type de vacance (RTT, congé, etc )
Col E et F: debut et fin du congé
col G(heure) et H(minutes): le nombre d heure si g=2 et h=0, lire 2h
En somme j'aimerai que dans le planning, apparaisse avec la couleur appropriée , le type de vacance . Exemple, pour la ligne 23: Verlof, le 20 janvier, en violet (a noter que le nombre d heure n a pas besoin d apparaitre sur le planning)
Merci encore pour ton aide qui m a été precieuse depuis le début !
ps: le nombre de jour de congés change d un employé à un autre, est ce que ce change quelque chose pour cette MFC ?
Par avance merci !
http://cjoint.com/?BGxknr4wraz
Desolé de te repondre si tard mais l'entreprise etait fermée pour une semaine.
Concernant tes recommendations , elles avaient été prises en compte dans mon fichier de travail, mais absentes dans le fichier exemple que je t avais fournis (désolé)
Pour l anglais francais, je n'y peux pas grand chose, toutes les données sont en hollandais, j'ai essayé de traduire un maximum pour l equipe (on travaile en anglais) et ne pas trop utiliser de francais...
Pour les infos presentes dans le document, eles sont confidentielles, mais je peux essayer de t expliquer un peu plus en details :
a partir de la ligne 21;
col B et C : nom de la personne
col D : type de vacance (RTT, congé, etc )
Col E et F: debut et fin du congé
col G(heure) et H(minutes): le nombre d heure si g=2 et h=0, lire 2h
En somme j'aimerai que dans le planning, apparaisse avec la couleur appropriée , le type de vacance . Exemple, pour la ligne 23: Verlof, le 20 janvier, en violet (a noter que le nombre d heure n a pas besoin d apparaitre sur le planning)
Merci encore pour ton aide qui m a été precieuse depuis le début !
ps: le nombre de jour de congés change d un employé à un autre, est ce que ce change quelque chose pour cette MFC ?
Par avance merci !
http://cjoint.com/?BGxknr4wraz
Raymond PENTIER
Messages postés
58762
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
17 décembre 2024
17 254
23 juil. 2012 à 14:26
23 juil. 2012 à 14:26
Ce n'est toujours pas la bonne version de fichier, semble-t-il : Tu as toujours les colonnes 1, 2, 3 au lieu de A, B, C ; tu as toujours le mélange de dates au format Nombre/Date (cellules L25C5:L26C6) et sous forme de texte (cellules L23C5:L24C6).
Tu as fait des modifications bizarres : ta colonne 4 n'a plus les codes de type de vacances A, B et C ; tes dates de vacances ne sont plus celles de ton exemple initial ; en colonne 8 tu as mis des minutes sous forme de centièmes d'heure (100 mn dans une heure).
Quand tu demandes "En somme j'aimerai que dans le planning, apparaisse avec la couleur appropriée , le type de vacance", il faudrait que quelqu'un t'écrive une macro !
En effet je peux résoudre ce problème pour une seule plage de couleur par ligne (une seule période de congé par mois) avec des formules excel standard, mais pas avec plusieurs tranches ...
Tu as fait des modifications bizarres : ta colonne 4 n'a plus les codes de type de vacances A, B et C ; tes dates de vacances ne sont plus celles de ton exemple initial ; en colonne 8 tu as mis des minutes sous forme de centièmes d'heure (100 mn dans une heure).
Quand tu demandes "En somme j'aimerai que dans le planning, apparaisse avec la couleur appropriée , le type de vacance", il faudrait que quelqu'un t'écrive une macro !
En effet je peux résoudre ce problème pour une seule plage de couleur par ligne (une seule période de congé par mois) avec des formules excel standard, mais pas avec plusieurs tranches ...
Salut Raymond,
Je travaille avec colonne 1,2,3 justement parcque je code pas mal de macro (menu excel=>option=> formules=>R1C1 style)
Est ce que tu peux me resoudre ce probleme pour une seule plage de couleur par ligne , et j essayerais d adapter ma macro (qui tourne en arriere plan), à ta MFC, peux etre qu avec un peu de bidouillage je pourrais m en sortir ... Car pour le moment je ne peux plus avancer sans cette MFC et je suis nul dans ce domaine !
je te met la plus grosse partie de mon code, si jamais cela peut t aider dans ta MFC (le code n est pas adaptable a l exemple que je t ai donné car je ne peux pas rendre annonyme toutes les infos dans l exemple)
Je travaille avec colonne 1,2,3 justement parcque je code pas mal de macro (menu excel=>option=> formules=>R1C1 style)
Est ce que tu peux me resoudre ce probleme pour une seule plage de couleur par ligne , et j essayerais d adapter ma macro (qui tourne en arriere plan), à ta MFC, peux etre qu avec un peu de bidouillage je pourrais m en sortir ... Car pour le moment je ne peux plus avancer sans cette MFC et je suis nul dans ce domaine !
je te met la plus grosse partie de mon code, si jamais cela peut t aider dans ta MFC (le code n est pas adaptable a l exemple que je t ai donné car je ne peux pas rendre annonyme toutes les infos dans l exemple)
Option Explicit Sub Make_extract() ' Dim Fichier As String Dim Ligne As String Dim Tableau() As String Dim i As Long Dim j As Integer, x As Integer, y As Integer, z As Integer Dim Vsum As Variant Dim sep As Integer Dim sh As Worksheet Application.DisplayAlerts = False Application.Calculation = xlManual Application.ScreenUpdating = False Set sh = Sheet1 sh.Cells.Clear Sheet2.Cells.Clear 'ouverture du fichier Fichier = Application.GetOpenFilename("text files (*.csv), *.csv") Open Fichier For Input As #1 Do While Not EOF(1) Line Input #1, Ligne 'Séparation des colonnes avec séparateur (,) Tableau = Split(Ligne, ",") i = i + 1 'Ajout des données ligne dans la feuille y = 0 For j = 0 To UBound(Tableau) y = y + 1 sh.Cells(i, y).Value = Replace(Tableau(j), """", "") If j = 4 Then If InStr(sh.Cells(i, y).Value, "-") > 0 Then 'sh.Cells(i, j + 1).Value = Replace(sh.Cells(i, j + 1).Value, " - ", ",") sep = InStr(sh.Cells(i, y).Value, " - ") sh.Cells(i, y).Value = Left(Tableau(j), sep) sh.Cells(i, y + 1).Value = Right(Tableau(j), Len(Tableau(j)) - (sep + 1)) y = y + 1 End If End If Next j Loop Close #1 'mise en place infos Application.Calculation = xlCalculationAutomatic 'creation colonne total Sheet1.Cells(1, 15).Value = "total" 'Sheet1.Cells(2, 15).Formula = "=INT(M2)&"",""&INT(N2)" Sheet1.Cells(2, 15).Formula = "=INT(RC[-4])&"",""&INT(RC[-3])" Sheet1.Select Range("O2").Select Selection.AutoFill Destination:=Range("O2:O10000"), Type:=xlFillDefault Sheet2.Cells(1, 3).Value = "Carrier ADV" Sheet2.Cells(1, 4).Value = "Carrier Verlof" Sheet2.Cells(1, 5).Value = "TVT" 'traitement des données x = 2 y = 2 While Sheet1.Cells(x, 7).Value <> "" If Sheet1.Cells(x, 7).Value <> Sheet1.Cells(x + 1, 7).Value Then Sheet2.Cells(y, 2).Value = Sheet1.Cells(x, 7).Value Sheet2.Cells(y, 1).Value = Sheet1.Cells(x, 6).Value y = y + 1 End If x = x + 1 Wend 'boucle pour remplir adv 'boucle pour remplir adv Vsum = 0 x = 2 While Sheet2.Cells(x, 1).Value <> "" y = 2 Vsum = 0 While Sheet1.Cells(y, 7).Value <> "" If Sheet2.Cells(x, 2).Value = Sheet1.Cells(y, 7).Value And Sheet1.Cells(y, 8).Value = "Carrier ADV" Then Vsum = Sheet1.Cells(y, 15) + Vsum Sheet2.Cells(x, 3).Value = Vsum End If y = y + 1 Wend x = x + 1 Wend 'boucle pour remplir verlof Vsum = 0 x = 2 While Sheet2.Cells(x, 1).Value <> "" y = 2 Vsum = 0 While Sheet1.Cells(y, 7).Value <> "" If Sheet2.Cells(x, 2).Value = Sheet1.Cells(y, 7).Value And Sheet1.Cells(y, 8).Value = "Carrier Verlof" Then Vsum = Sheet1.Cells(y, 15) + Vsum Sheet2.Cells(x, 4).Value = Vsum End If y = y + 1 Wend x = x + 1 Wend 'boucle pour remplir TVT Vsum = 0 x = 2 While Sheet2.Cells(x, 1).Value <> "" y = 2 Vsum = 0 While Sheet1.Cells(y, 7).Value <> "" If Sheet2.Cells(x, 2).Value = Sheet1.Cells(y, 7).Value And Left(Sheet1.Cells(y, 8).Value, 3) = "TVT" Then Vsum = Sheet1.Cells(y, 15) + Vsum Sheet2.Cells(x, 5).Value = Vsum End If y = y + 1 Wend x = x + 1 Wend 'on remplace case vide par des 0 x = 2 While Sheet2.Cells(x, 1).Value <> "" If Sheet2.Cells(x, 3).Value = "" Then Sheet2.Cells(x, 3).Value = "0" End If If Sheet2.Cells(x, 4).Value = "" Then Sheet2.Cells(x, 4).Value = "0" End If If Sheet2.Cells(x, 5).Value = "" Then Sheet2.Cells(x, 5).Value = "0" End If x = x + 1 Wend MsgBox ("done") Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
Raymond PENTIER
Messages postés
58762
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
17 décembre 2024
17 254
24 juil. 2012 à 00:21
24 juil. 2012 à 00:21
Pour une seule plage de cellules, voici le tuto :
https://www.commentcamarche.net/applis-sites/bureautique/1517-faire-rapidement-un-planning-avec-excel/
Mais il sera difficile à transcrire en macro pour tes plages multiples ...
https://www.commentcamarche.net/applis-sites/bureautique/1517-faire-rapidement-un-planning-avec-excel/
Mais il sera difficile à transcrire en macro pour tes plages multiples ...
Bonjour le Pinguin,
C'est exactement ce que je veux !Je vais essayer tout de suite l adaptation à mon fichier employés !
Je vous mettrai le fichier complet une fois terminé
C'est exactement ce que je veux !Je vais essayer tout de suite l adaptation à mon fichier employés !
Je vous mettrai le fichier complet une fois terminé
Salut !
Bon j'ái passé la matinée á modifier ma macro, je pense que je ne suis pas loin, mais cela ne fonctionne toujours pas ...
Je pense que les variables datedebut et datefin ne s incrementent pas et je n arrive pas a savoir pourquoi ,
Il se peut que se soit aussi une histoire de date, pourtant es formats semblent respctés ...
Je vous ai fait un fichier exemple, avec le module TEST incluant les boucles de Le Pinguin ... Le module HR Extract est une etape intermediaire qui n interfere pas avec le module test (ne pas y toucher svp !).
Pour supprimer les feuilles, utiliser le module de Suppression
Le but est en gros de faire une macro qui attribue une feuille a chacun, tout en mettant á jour le planning...
J espere que vous pourrez m aider et que je ne suis pas parti dans tous les sens !
Merci . Samanosuke
http://cjoint.com/?BGylHUFvgpH
Bon j'ái passé la matinée á modifier ma macro, je pense que je ne suis pas loin, mais cela ne fonctionne toujours pas ...
Je pense que les variables datedebut et datefin ne s incrementent pas et je n arrive pas a savoir pourquoi ,
Il se peut que se soit aussi une histoire de date, pourtant es formats semblent respctés ...
Je vous ai fait un fichier exemple, avec le module TEST incluant les boucles de Le Pinguin ... Le module HR Extract est une etape intermediaire qui n interfere pas avec le module test (ne pas y toucher svp !).
Pour supprimer les feuilles, utiliser le module de Suppression
Le but est en gros de faire une macro qui attribue une feuille a chacun, tout en mettant á jour le planning...
J espere que vous pourrez m aider et que je ne suis pas parti dans tous les sens !
Merci . Samanosuke
http://cjoint.com/?BGylHUFvgpH
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
24 juil. 2012 à 14:15
24 juil. 2012 à 14:15
Bonjour,
Dans un premier temps, en parcourant votre feuille [DATAS] je constate que les remarques de Raymond (Salutations et merci pour le tuto) concernant le format des dates [Einddatum] et [OpgenomenOpname] ne sont en tout cas pas prisent en compte.
Je pense que vous allez corriger les formats de date et ensuite je regarderai votre problème.
En plus, je vous demande de respect mon pseudo qui est Le Pingou (non pas : le Pinguin).
Dans un premier temps, en parcourant votre feuille [DATAS] je constate que les remarques de Raymond (Salutations et merci pour le tuto) concernant le format des dates [Einddatum] et [OpgenomenOpname] ne sont en tout cas pas prisent en compte.
Je pense que vous allez corriger les formats de date et ensuite je regarderai votre problème.
En plus, je vous demande de respect mon pseudo qui est Le Pingou (non pas : le Pinguin).
Je m'excuse pour l'erraflure, correction automatique sur ordinateur néerlandais avec clavier QWERTY .
Pour infos les remarques avaient bien étés prises en compte , mais la faille provient plutot d'un logiciel de gestion RH tres bancal qui peine à exporter sous excel, et qui parfois, me traduit des dates en textes .
Voici le fichier modifié, avec les dates correctes ( meme si l affichage n'est pas le meme).
Bonne fin de journée
http://cjoint.com/?BGyqeYLzcNA
Pour infos les remarques avaient bien étés prises en compte , mais la faille provient plutot d'un logiciel de gestion RH tres bancal qui peine à exporter sous excel, et qui parfois, me traduit des dates en textes .
Voici le fichier modifié, avec les dates correctes ( meme si l affichage n'est pas le meme).
Bonne fin de journée
http://cjoint.com/?BGyqeYLzcNA
Le Pingou
Messages postés
12225
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
6 décembre 2024
1 452
24 juil. 2012 à 17:22
24 juil. 2012 à 17:22
Bonjour,
Je suppose qu'il s'agit de la procédure [Sub macrotest()], pouvez-vous précisé depuis quelle feuille elle est activée... ?
Je suppose qu'il s'agit de la procédure [Sub macrotest()], pouvez-vous précisé depuis quelle feuille elle est activée... ?
Cela fonctionne !!!
apres avoir relu votre commentaire une enieme fois, et suivis un peu mon instinc, j'ai modifié legerement le code, en supprimant le sous macro "Nettoyer" (en effet, elle supprimait les données que je venait d actualiser dans la boucle Do...Loop Until)...
Apparement tout fonctionne sous le fichier exemple, je vais l adapter a mon fichier réel.
J'ai encore quelaues probleme de convertion de date (Les hollandais sont basés sur un systeme jjmmAAAA mais les pc sont configurés sur du mmddYYYY comme aux US)
Je vous laisse le fichier exemple, si cela peut servir pour un autre...
Merci emcore pour votre implication et votre reactivité !
Samanosuke
http://cjoint.com/?BGzj0zcCcaF
apres avoir relu votre commentaire une enieme fois, et suivis un peu mon instinc, j'ai modifié legerement le code, en supprimant le sous macro "Nettoyer" (en effet, elle supprimait les données que je venait d actualiser dans la boucle Do...Loop Until)...
Apparement tout fonctionne sous le fichier exemple, je vais l adapter a mon fichier réel.
J'ai encore quelaues probleme de convertion de date (Les hollandais sont basés sur un systeme jjmmAAAA mais les pc sont configurés sur du mmddYYYY comme aux US)
Je vous laisse le fichier exemple, si cela peut servir pour un autre...
Merci emcore pour votre implication et votre reactivité !
Samanosuke
http://cjoint.com/?BGzj0zcCcaF
Le script final, incluant le module de Le Pingou
Sub macrotest() Application.DisplayAlerts = False Application.Calculation = xlManual Application.ScreenUpdating = False Dim myName As String, myName2 As String, Mynaam As String Dim x As Integer, Y As Integer, z As Integer x = 2 While Sheet1.Cells(x, 6).Value <> "" myName = Left(Sheet1.Cells(x, 6), 25) & Left(Sheet1.Cells(x, 5), 3) myName2 = Sheet1.Cells(x, 5) Mynaam = Left(Sheet1.Cells(x + 1, 6), 25) & Left(Sheet1.Cells(x + 1, 5), 3) Y = 22 If myName <> Mynaam Then Sheets("Format").Select Sheets("Format").Copy Before:=Sheets(1) ActiveSheet.Name = myName Application.CutCopyMode = False ActiveWindow.DisplayGridlines = False Sheets(myName).Cells(2, 2).Value = myName2 z = x Do Sheets(myName).Cells(Y, 2).Value = Sheet1.Cells(z, 5).Value Sheets(myName).Cells(Y, 3).Value = Sheet1.Cells(z, 6).Value Sheets(myName).Cells(Y, 4).Value = Sheet1.Cells(z, 8).Value Sheets(myName).Cells(Y, 5).Value = Sheet1.Cells(z, 9).Value Sheets(myName).Cells(Y, 6).Value = Sheet1.Cells(z, 10).Value Sheets(myName).Cells(Y, 7).Value = Sheet1.Cells(z, 11).Value Sheets(myName).Cells(Y, 8).Value = Sheet1.Cells(z, 12).Value Y = Y + 1 z = z - 1 Loop Until Sheet1.Cells(z, 6).Value <> Sheet1.Cells(z + 1, 6).Value '------------------- On rempli le planning Dim anact As Integer, nude As Integer, c As Integer, D As Integer Dim ligde As Integer, liorg As Integer, colde As Integer, coorg As Integer Dim val As Variant Dim datedebut As Date, datefin As Date Sheets(myName).Activate Application.ScreenUpdating = False ' nettoyer la plage 'nettoyer anact = Cells(4, 1).Value liorg = 4: coorg = 1 'debutannee = #1/1/2009# ' boucle sur type vac For Each val In Range("typvac") datedebut = val.Offset(0, 1): datefin = val.Offset(0, 2) ' position départ sur planing et numéro mois départ ligde = Month(datedebut) + liorg colde = Day(datedebut) + coorg nude = Month(datedebut) For c = 0 To (datefin - datedebut) ' MsgBox "la date du: " & datedebut + c ' contrôle passage If nude = Month(datedebut + c) Then Cells(ligde, colde + D) = val.Value D = D + 1 Else nude = Month(datedebut + c) ligde = ligde + 1: colde = 2: D = 0 Cells(ligde, colde + D) = val.Value D = D + 1 End If Next c D = 0 Next val Application.ScreenUpdating = True 'Repositionnement début planning Range("A4").Select End If x = x + 1 Wend Application.DisplayAlerts = True Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub
10 juil. 2012 à 11:42