IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> [RESOLU]requête: dans Excel 2013,modifier 896 formules via un script, question pour les balèzes du script ou de la macro …
Options
radioman
posté 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 Crucial C300 256 Go Samsung 840 EVO 512 Go / El Capitan 10.11.6
 Imac G4 800 15" (2002) type 4,2 60 Go 80Go 7200tr / 768 Mo / Pioneer DVR 104 111D / Tiger 10.4.11
 SSD externe M2 FireCuda 520 2To test Monterey / Time Machine MBP 16
 DD externe 4 To Time Machine MBP 16
 DD externe 2 To Big Sur Beta bidouilles
 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
Go to the top of the page
 
+Quote Post
baron
posté 7 Sep 2017, 19:12
Message #2


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 19 353
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. wink.gif

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…
Go to the top of the page
 
+Quote Post
radioman
posté 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



Citation (baron @ 7 Sep 2017, 20:12) *
il serait déjà bon que tu indiques la version du logiciel utilisée. wink.gif

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 Crucial C300 256 Go Samsung 840 EVO 512 Go / El Capitan 10.11.6
 Imac G4 800 15" (2002) type 4,2 60 Go 80Go 7200tr / 768 Mo / Pioneer DVR 104 111D / Tiger 10.4.11
 SSD externe M2 FireCuda 520 2To test Monterey / Time Machine MBP 16
 DD externe 4 To Time Machine MBP 16
 DD externe 2 To Big Sur Beta bidouilles
 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
Go to the top of the page
 
+Quote Post
teddy7545
posté 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
Go to the top of the page
 
+Quote Post
radioman
posté 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 !!!!!
Citation (teddy7545 @ 8 Sep 2017, 15:55) *
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 …

jap.gif jap.gif jap.gif

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 Crucial C300 256 Go Samsung 840 EVO 512 Go / El Capitan 10.11.6
 Imac G4 800 15" (2002) type 4,2 60 Go 80Go 7200tr / 768 Mo / Pioneer DVR 104 111D / Tiger 10.4.11
 SSD externe M2 FireCuda 520 2To test Monterey / Time Machine MBP 16
 DD externe 4 To Time Machine MBP 16
 DD externe 2 To Big Sur Beta bidouilles
 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
Go to the top of the page
 
+Quote Post
teddy7545
posté 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 blink.gif ... 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
Go to the top of the page
 
+Quote Post
radioman
posté 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



Citation (teddy7545 @ 8 Sep 2017, 19:08) *
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 !!!
jap.gif jap.gif jap.gif jap.gif jap.gif jap.gif jap.gif jap.gif jap.gif jap.gif jap.gif jap.gif jap.gif


--------------------

 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 Crucial C300 256 Go Samsung 840 EVO 512 Go / El Capitan 10.11.6
 Imac G4 800 15" (2002) type 4,2 60 Go 80Go 7200tr / 768 Mo / Pioneer DVR 104 111D / Tiger 10.4.11
 SSD externe M2 FireCuda 520 2To test Monterey / Time Machine MBP 16
 DD externe 4 To Time Machine MBP 16
 DD externe 2 To Big Sur Beta bidouilles
 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
Go to the top of the page
 
+Quote Post
radioman
posté 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 Crucial C300 256 Go Samsung 840 EVO 512 Go / El Capitan 10.11.6
 Imac G4 800 15" (2002) type 4,2 60 Go 80Go 7200tr / 768 Mo / Pioneer DVR 104 111D / Tiger 10.4.11
 SSD externe M2 FireCuda 520 2To test Monterey / Time Machine MBP 16
 DD externe 4 To Time Machine MBP 16
 DD externe 2 To Big Sur Beta bidouilles
 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
Go to the top of the page
 
+Quote Post
teddy7545
posté 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 smile.gif

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 pas

Bon 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
Go to the top of the page
 
+Quote Post
radioman
posté 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 Crucial C300 256 Go Samsung 840 EVO 512 Go / El Capitan 10.11.6
 Imac G4 800 15" (2002) type 4,2 60 Go 80Go 7200tr / 768 Mo / Pioneer DVR 104 111D / Tiger 10.4.11
 SSD externe M2 FireCuda 520 2To test Monterey / Time Machine MBP 16
 DD externe 4 To Time Machine MBP 16
 DD externe 2 To Big Sur Beta bidouilles
 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
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 25th April 2024 - 03:15