[RESOLU]requête: dans Excel 2013,modifier 896 formules via un script, question pour les balèzes du script ou de la macro … |
Bienvenue invité ( Connexion | Inscription )
[RESOLU]requête: dans Excel 2013,modifier 896 formules via un script, question pour les balèzes du script ou de la macro … |
7 Sep 2017, 18:16
Message
#1
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 5 984 Inscrit : 30 Sep 2002 Lieu : Limoges Membre no 3 870 |
j'ai des lacunes en Excel .
j'ai créé en 1999 un tableau pour gérer nos horaires de travail pour moi et mes collègues. celui-ci contient 896 cellules correspondant aux heures d'embauche et débauche, pour le matin et l'après-midi, pour 7 personnes, sur sept jours, sur 4 semaines ... nos cycles de travail étaient jusqu'alors sur 7 "semaines types" différentes numérotées de 1 à 7 le remplissage du tableau se fait par ce type de formule: =CHOISIR(A21;"05:30";"";"08:45";"";"";"";"10:45";"";"05:30") =CHOISIR(A21;"13:00";"";"11:15";"";"";"";"13:15";"";"13:15") =CHOISIR(A21;"";"";"13:15";"";"";"";"14:45";"";"") =CHOISIR(A21;"";"R";"19:15";"R";"R";"M";"19:15";"";"") etc... exemple: si on entre 3 (numéro de la 3ème "semaine type") en A21 ça affiche une journée de travail (A21 correspond à UN jour pour UNE personne sur UNE semaine) 8:45/11:15 13:15/19:15 y'en a 896 comme ça: Fonction Choisir, un numéro de case, suivi de 9 items séparés par un ";" (nota: y'a 9 items parce que des fois on a des CDD ...) Mon problème: suite aux restrictions budgétaires (on n'est plus 7 mais 6 a bosser) la semaine 4 disparait dans le cycle de 7 semaines !!! d'ou ma question: comment supprimer facilement dans les 896 cases/formules le quatrième item et le ";" qui le suit ??? en fait il faudrait un script qui fait: rechercher "=CHOISIR" ->dans la liste des 896 réponses trouvées (formules) prendre la première -->dans la formule supprimer ce qui se trouve entre le quatrième ";" et le cinquième ";" ainsi que le cinquième ";" --->enregistrer la modif passer à la réponse suivante ->dans la formule supprimer ce qui se trouve entre le quatrième ";" et le cinquième ";" ainsi que le cinquième ";" -->enregistrer la modif passer à la réponse suivante ->dans la formule supprimer ce qui se trouve entre le quatrième ";" et le cinquième ";" ainsi que le cinquième ";" -->enregistrer la modif etc jusqu'à la 896 ème modif … Merciiiiiiii d'avance ... Edit: ou toute autre manip' automatisée qui arrive au même résultat … Ce message a été modifié par radioman - 11 Sep 2017, 17:48. -------------------- MacBook Pro 16" core I9 (2020) type 16.1 / 2,3 Ghz / 32 Go / 1To / Big Sur 11.6.1 (depuis la sortie de Monterey) Imac Alu 24" core 2 duo (mid 2007) type 7,1 / 2,4 Ghz / 4 Go / SSD Imac G4 800 15" (2002) type 4,2 SSD externe M2 FireCuda 520 2To test Monterey / Time Machine MBP 16 DD externe 4 To Time Machine MBP 16 DD externe 2 To DD externe AluICE 500 Go Time Machine iMac 24 Dock "Freecom" + DD Bidouilles 10.4 / 10.5 / 10.6 / 10.7 / 10.8 / 10.9 / 10.10 / 10.11 / 10.12 / 10.13 / 10.14 Dock double "Advance Dual Easy Docking" pour cloner les disques … imprimante-scanner A3 Epson Workforce 7620 / iPad 2 32 Go / iPhone 8+ Red 256 Go |
|
|
7 Sep 2017, 19:12
Message
#2
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 19 361 Inscrit : 22 Jul 2004 Lieu : Louvain-la-Neuve (Gaule Gelbique) Membre no 21 291 |
D'ici à ce que quelqu'un de plus calé que moi ne passe par là, il serait déjà bon que tu indiques la version du logiciel utilisée.
J'imagine qu'une requête avec une « expression régulière » permettrait de faire ça — mais cela existe-t-il dans Excel ?… -------------------- ¶ MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS 12.6 “Monterey” ¶ MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8 ¶ Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C ¶ B-Box 3 + HP LaserJet 4000 N
¶ La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même. … Les corsaires mettent en berne… |
|
|
7 Sep 2017, 23:55
Message
#3
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 5 984 Inscrit : 30 Sep 2002 Lieu : Limoges Membre no 3 870 |
il serait déjà bon que tu indiques la version du logiciel utilisée. Ah oui, ça a sauté dans la copie … Excel 2013 (c'est une version Windows au boulot) en espérant qu'il n'y ait pas trop de différence avec une version Mac Edit: Titre édité … Edit 2: au début des années 2000 j'avais fait des macros pour modifier facilement ce tableau (passage de 6 à 7 personnes), mais 15 ans sans pratiquer, je retrouve plus comment ça se manipule ces macros … Ce message a été modifié par radioman - 8 Sep 2017, 18:10. -------------------- MacBook Pro 16" core I9 (2020) type 16.1 / 2,3 Ghz / 32 Go / 1To / Big Sur 11.6.1 (depuis la sortie de Monterey) Imac Alu 24" core 2 duo (mid 2007) type 7,1 / 2,4 Ghz / 4 Go / SSD Imac G4 800 15" (2002) type 4,2 SSD externe M2 FireCuda 520 2To test Monterey / Time Machine MBP 16 DD externe 4 To Time Machine MBP 16 DD externe 2 To DD externe AluICE 500 Go Time Machine iMac 24 Dock "Freecom" + DD Bidouilles 10.4 / 10.5 / 10.6 / 10.7 / 10.8 / 10.9 / 10.10 / 10.11 / 10.12 / 10.13 / 10.14 Dock double "Advance Dual Easy Docking" pour cloner les disques … imprimante-scanner A3 Epson Workforce 7620 / iPad 2 32 Go / iPhone 8+ Red 256 Go |
|
|
8 Sep 2017, 14:55
Message
#4
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 879 Inscrit : 4 Apr 2004 Lieu : Lorraine - 54 Membre no 17 184 |
Bonjour,
Essai cette macro en corrigeant juste le champs ("A1:F20") qui contient tes cellules à modifier. Suivant le modèle de formule que tu as donné et sous réserve qu'elles sooient toute avec le même format (9 champs délimités par des points-virgules) ça devrait fonctionner. Code Sub FixFormula() Dim c As Range Dim regex As Object, str As String Set regex = CreateObject("VBScript.RegExp") With regex .Pattern = "(=CHOOSE\(.*,.*,.*,.*,).*,(.*,.*,.*,.*,.*\))" .Global = False .MultiLine = False .IgnoreCase = True End With For Each c In Range("A1:F20").SpecialCells(xlCellTypeFormulas) If c.HasFormula Then str = c.Formula Set matches = regex.Execute(str) For Each Match In matches With regex.Execute(str) c.Formula = .Item(0).SubMatches(0) & .Item(0).SubMatches(1) End With Next Match End If Next c End Sub Edit 1: C'est testé sur une version Excel 2007 sur PC (ça devrait fonctionner de la même façon sur une version 2013) Edit 2: Pour Baron ---> Oui les expressions régulières sont aussi utilisables sous VBA Ce message a été modifié par teddy7545 - 8 Sep 2017, 18:01. -------------------- MP Intel Dual Xéon 3 GHz - MacOSX 10.10.3 - ATI Radeon HD 5770 - ATTO UL5D - Apple Cinema HD Display 23 pouces MBP 15' 2017 - MBP 13' mid 2009 - iMac 24' 8,1 2,8GHz - MP G4 MDD Bi 1,25 GHz - MP G4 Quicksylver 933MHz |
|
|
8 Sep 2017, 17:44
Message
#5
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 5 984 Inscrit : 30 Sep 2002 Lieu : Limoges Membre no 3 870 |
YEHAAAAA !!!!!
Suivant le modèle de formule que tu as donné et sous réserve qu'elles sooient toute avec le même format (9 champs délimités par des points-virgules) ça devrait fonctionner. ça doit marcher, j'ai juste fait un copier/coller depuis Excel vers le forum … je vais tester demain (aujourd'hui je suis de repos) mais ça me semble pas mal du tout ton script … Edit: juste un truc que j'ai pas précisé, mon tableau est sur quatre feuilles qui se suivent, une par semaine, mais je devrais y arriver en lançant quatre fois le script … Ce message a été modifié par radioman - 8 Sep 2017, 17:59. -------------------- MacBook Pro 16" core I9 (2020) type 16.1 / 2,3 Ghz / 32 Go / 1To / Big Sur 11.6.1 (depuis la sortie de Monterey) Imac Alu 24" core 2 duo (mid 2007) type 7,1 / 2,4 Ghz / 4 Go / SSD Imac G4 800 15" (2002) type 4,2 SSD externe M2 FireCuda 520 2To test Monterey / Time Machine MBP 16 DD externe 4 To Time Machine MBP 16 DD externe 2 To DD externe AluICE 500 Go Time Machine iMac 24 Dock "Freecom" + DD Bidouilles 10.4 / 10.5 / 10.6 / 10.7 / 10.8 / 10.9 / 10.10 / 10.11 / 10.12 / 10.13 / 10.14 Dock double "Advance Dual Easy Docking" pour cloner les disques … imprimante-scanner A3 Epson Workforce 7620 / iPad 2 32 Go / iPhone 8+ Red 256 Go |
|
|
8 Sep 2017, 18:08
Message
#6
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 879 Inscrit : 4 Apr 2004 Lieu : Lorraine - 54 Membre no 17 184 |
Citation juste un truc que j'ai pas précisé, mon tableau est sur quatre feuilles qui se suivent, une par semaine, mais je devrais y arriver en lançant quatre fois le script … Oui c'est une condition qui n'était pas précisée ... mais tu peux lancer le script depuis chaque onglet pour faire le travail nécessaire (avec adaptation de la plage des cellules à traiter si nécessaire). Pour info, seule les cellules avec une formule qui répond au bon format seront modifiées. Le filtre est fait de telle sorte que si tu relance la macro après avoir déjà traité l'onglet aucune nouvelle modification ne se produira (le format de l'expression régulère traite seulement les formules qui commencent par =CHOOSE et contenant 9 champs et exclut donc les formules déjà traitées qui n'ont plus que 8 champs). Ce message a été modifié par teddy7545 - 8 Sep 2017, 18:09. -------------------- MP Intel Dual Xéon 3 GHz - MacOSX 10.10.3 - ATI Radeon HD 5770 - ATTO UL5D - Apple Cinema HD Display 23 pouces MBP 15' 2017 - MBP 13' mid 2009 - iMac 24' 8,1 2,8GHz - MP G4 MDD Bi 1,25 GHz - MP G4 Quicksylver 933MHz |
|
|
8 Sep 2017, 18:12
Message
#7
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 5 984 Inscrit : 30 Sep 2002 Lieu : Limoges Membre no 3 870 |
Le filtre est fait de telle sorte que si tu relance la macro après avoir déjà traité l'onglet aucune nouvelle modification ne se produira (le format de l'expression régulère traite seulement les formules qui commencent par =CHOOSE et contenant 9 champs et exclut donc les formules déjà traitées qui n'ont plus que 8 champs). ROYAL !!! -------------------- MacBook Pro 16" core I9 (2020) type 16.1 / 2,3 Ghz / 32 Go / 1To / Big Sur 11.6.1 (depuis la sortie de Monterey) Imac Alu 24" core 2 duo (mid 2007) type 7,1 / 2,4 Ghz / 4 Go / SSD Imac G4 800 15" (2002) type 4,2 SSD externe M2 FireCuda 520 2To test Monterey / Time Machine MBP 16 DD externe 4 To Time Machine MBP 16 DD externe 2 To DD externe AluICE 500 Go Time Machine iMac 24 Dock "Freecom" + DD Bidouilles 10.4 / 10.5 / 10.6 / 10.7 / 10.8 / 10.9 / 10.10 / 10.11 / 10.12 / 10.13 / 10.14 Dock double "Advance Dual Easy Docking" pour cloner les disques … imprimante-scanner A3 Epson Workforce 7620 / iPad 2 32 Go / iPhone 8+ Red 256 Go |
|
|
9 Sep 2017, 19:45
Message
#8
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 5 984 Inscrit : 30 Sep 2002 Lieu : Limoges Membre no 3 870 |
ça a marché nickel !!!
j'ai plus qu'a résoudre d'autres problèmes de correction: j'ai écris des formules que je n'arrive même plus à comprendre, j'en suis à les "déconstruire" pour comprendre ce qu'elles font !!! -------------------- MacBook Pro 16" core I9 (2020) type 16.1 / 2,3 Ghz / 32 Go / 1To / Big Sur 11.6.1 (depuis la sortie de Monterey) Imac Alu 24" core 2 duo (mid 2007) type 7,1 / 2,4 Ghz / 4 Go / SSD Imac G4 800 15" (2002) type 4,2 SSD externe M2 FireCuda 520 2To test Monterey / Time Machine MBP 16 DD externe 4 To Time Machine MBP 16 DD externe 2 To DD externe AluICE 500 Go Time Machine iMac 24 Dock "Freecom" + DD Bidouilles 10.4 / 10.5 / 10.6 / 10.7 / 10.8 / 10.9 / 10.10 / 10.11 / 10.12 / 10.13 / 10.14 Dock double "Advance Dual Easy Docking" pour cloner les disques … imprimante-scanner A3 Epson Workforce 7620 / iPad 2 32 Go / iPhone 8+ Red 256 Go |
|
|
9 Sep 2017, 20:03
Message
#9
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 879 Inscrit : 4 Apr 2004 Lieu : Lorraine - 54 Membre no 17 184 |
Citation ça a marché nickel !!! Excellente nouvelle, j'avais essayé de faire tout pour Citation j'ai plus qu'a résoudre d'autres problèmes de correction Le script aurait pu faire d'autres corrections au besoin ... il est pas trop tard pour l'adapter.Citation j'ai écris des formules que je n'arrive même plus à comprendre Si je peux t'aider n'hésite pasBon courage. -------------------- MP Intel Dual Xéon 3 GHz - MacOSX 10.10.3 - ATI Radeon HD 5770 - ATTO UL5D - Apple Cinema HD Display 23 pouces MBP 15' 2017 - MBP 13' mid 2009 - iMac 24' 8,1 2,8GHz - MP G4 MDD Bi 1,25 GHz - MP G4 Quicksylver 933MHz |
|
|
11 Sep 2017, 17:47
Message
#10
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 5 984 Inscrit : 30 Sep 2002 Lieu : Limoges Membre no 3 870 |
ça y est j'en suis venu à bout de cette fonction modulo (MOD) !
patience et obstination … encore un grand merci teddy7545 -------------------- MacBook Pro 16" core I9 (2020) type 16.1 / 2,3 Ghz / 32 Go / 1To / Big Sur 11.6.1 (depuis la sortie de Monterey) Imac Alu 24" core 2 duo (mid 2007) type 7,1 / 2,4 Ghz / 4 Go / SSD Imac G4 800 15" (2002) type 4,2 SSD externe M2 FireCuda 520 2To test Monterey / Time Machine MBP 16 DD externe 4 To Time Machine MBP 16 DD externe 2 To DD externe AluICE 500 Go Time Machine iMac 24 Dock "Freecom" + DD Bidouilles 10.4 / 10.5 / 10.6 / 10.7 / 10.8 / 10.9 / 10.10 / 10.11 / 10.12 / 10.13 / 10.14 Dock double "Advance Dual Easy Docking" pour cloner les disques … imprimante-scanner A3 Epson Workforce 7620 / iPad 2 32 Go / iPhone 8+ Red 256 Go |
|
|
Nous sommes le : 26th April 2024 - 14:58 |