Utiliser Remplacer avec une macro
Résolu
Prévan
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
Mike-31 Messages postés 18407 Date d'inscription Statut Contributeur Dernière intervention -
Mike-31 Messages postés 18407 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je vais devenir fou, et j'espère que vous allez pouvoir m'aider :)
Je cherche à remplacer des dates qui ont un format de cellule par défaut Type "*14/03/2001" en utilisant une macro. Les dates sont toutes dans une colonne jour par jour
01/01/2002
02/01/2002
...
31/12/2002
Je voudrais remplacer toutes les dates de novembre à mars par "hiver" et avril à octobre par "été". Si je le fais manuellement, je n'ai qu'à lancer la fonction rechercher et remplacer, écrire dans recherche : */01/* et dans remplacer : hiver
Le faire douze fois pour chaque moi et le tour et joué, il y a peut être plus simple avec une boucle mais ce n'est pas trop fatiguant... par contre, ça se complique sérieusement lorsque je cherche à faire la manipulation à l'aide d'une macro !
En effet, lorsque je lance une macro, que je fais la manipulation, et que je test ma macro : RIEN ne se passe.
J'ai donc essayé de changer préalablement le format de la date, j'ai essayé tout un tas de commande pré conçues par d'autre mais je n'ai pas réussi à assembler quelque chose qui fonctionne, par exemple avec ce bout de code
Bref... je me dis que peut être le plus simple est de faire une boucle, mais je ne sais pas trop comment m'y prendre. Alors si quelqu'un peut m'envoyer sur une piste ou m'aider à régler le problème par le bout que j'ai commencé,
Merci beaucoup !
Je vais devenir fou, et j'espère que vous allez pouvoir m'aider :)
Je cherche à remplacer des dates qui ont un format de cellule par défaut Type "*14/03/2001" en utilisant une macro. Les dates sont toutes dans une colonne jour par jour
01/01/2002
02/01/2002
...
31/12/2002
Je voudrais remplacer toutes les dates de novembre à mars par "hiver" et avril à octobre par "été". Si je le fais manuellement, je n'ai qu'à lancer la fonction rechercher et remplacer, écrire dans recherche : */01/* et dans remplacer : hiver
Le faire douze fois pour chaque moi et le tour et joué, il y a peut être plus simple avec une boucle mais ce n'est pas trop fatiguant... par contre, ça se complique sérieusement lorsque je cherche à faire la manipulation à l'aide d'une macro !
En effet, lorsque je lance une macro, que je fais la manipulation, et que je test ma macro : RIEN ne se passe.
Sub Test() Sheets("new").Select Cells.Replace What:="***/01/***", Replacement:="hiver", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Cells.Replace What:="***/02/***", Replacement:="hiver", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Cells.Replace What:="***/03/***", Replacement:="hiver", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ' ETC pour l'ensemble de l'année Sheets("Facture Gaz").Select Range("D13").Select ActiveCell.FormulaR1C1 = _ "=SUMIF(new!R[-10]C[-3]:R[354]C[-3],""été"",new!R[-10]C[25]:R[355]C[25])" ActiveCell.Offset(1, 0).Range("A1").Select Range("D14").Select ActiveCell.FormulaR1C1 = _ "=SUMIF(new!R[-11]C[-3]:R[353]C[-3],""hiver"",new!R[-11]C[25]:R[354]C[25])" ActiveCell.Offset(1, 0).Range("A1").Select End Sub
J'ai donc essayé de changer préalablement le format de la date, j'ai essayé tout un tas de commande pré conçues par d'autre mais je n'ai pas réussi à assembler quelque chose qui fonctionne, par exemple avec ce bout de code
Sub test() Sheets("new").Columns(1).Replace.Cell "***/2/***", "hiver" End Sub
Bref... je me dis que peut être le plus simple est de faire une boucle, mais je ne sais pas trop comment m'y prendre. Alors si quelqu'un peut m'envoyer sur une piste ou m'aider à régler le problème par le bout que j'ai commencé,
Merci beaucoup !
A voir également:
- Utiliser Remplacer avec une macro
- Utiliser chromecast - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Remplacer disque dur par ssd - Guide
- Remplacer word - Guide
- Utiliser une tablette comme ecran pc - Guide
4 réponses
Bonjour,
Je vais devenir fou, et j'espère que vous allez pouvoir m'aider :)
mais non on ne va pas t'aider à devenir fou! :-D
a la bourre, il vaut mieux effectivement utiliser une formule mais comme c'est fait!
en restant sur du VBA et en se basant sur les mois(...), fonction personnalisée:
:-x
Je vais devenir fou, et j'espère que vous allez pouvoir m'aider :)
mais non on ne va pas t'aider à devenir fou! :-D
a la bourre, il vaut mieux effectivement utiliser une formule mais comme c'est fait!
en restant sur du VBA et en se basant sur les mois(...), fonction personnalisée:
Function donner_saison(journee As Date) As String mois = Month(journee) Select Case mois Case 1 To 3 donner_saison = "hiver" Case 4 To 6 donner_saison = "printemps" Case 7 To 9 donner_saison = "été" Case 10 To 12 donner_saison = "hiver" End Select End Function
:-x
Salut,
Tu peux obtenir le résultat avec formule,
exemple en colonne A tu as tes dates en I la date de l'equinoxe de printemps 21/03/2010
en I2 la date du solstice d'été 21/06/2010
en I3 la date de l'équinoxe d'automne et en I4 le solstice d'hiver
cette formule te donnera d'un coup le résultat souhaité 21 été 2002 pour l'été la même chose pour le quatre saisons
=SI(ET(A1>=$I$1;A1<$I$2);REMPLACER(TEXTE(JOUR(A1);"00")&TEXTE(MOIS(A1);"00")&TEXTE(ANNEE(A1);"0000");3;2;" printemps ");SI(ET(A1>=$I$2;A1<$I$3);REMPLACER(TEXTE(JOUR(A1);"00")&TEXTE(MOIS(A1);"00")&TEXTE(ANNEE(A1);"0000");3;2;" été ");SI(ET(A1>=$I$3;A1<$I$4);REMPLACER(TEXTE(JOUR(A1);"00")&TEXTE(MOIS(A1);"00")&TEXTE(ANNEE(A1);"0000");3;2;" automne ");REMPLACER(TEXTE(JOUR(A1);"00")&TEXTE(MOIS(A1);"00")&TEXTE(ANNEE(A1);"0000");3;2;" hiver "))))
pour traiter qu'une saison à la fois
=SI(ET(A1>=$I$2;A1<$I$3);REMPLACER(TEXTE(JOUR(A1);"00")&TEXTE(MOIS(A1);"00")&TEXTE(ANNEE(A1);"0000");3;2;" été ");"")
Pour gérer manuellement les dates
=REMPLACER(TEXTE(JOUR(A1);"00")&TEXTE(MOIS(A1);"00")&TEXTE(ANNEE(A1);"0000");3;2;" été ")
un petit montage
https://www.cjoint.com/?gknQEI8QVT
Je regarde en VBA le code
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Tu peux obtenir le résultat avec formule,
exemple en colonne A tu as tes dates en I la date de l'equinoxe de printemps 21/03/2010
en I2 la date du solstice d'été 21/06/2010
en I3 la date de l'équinoxe d'automne et en I4 le solstice d'hiver
cette formule te donnera d'un coup le résultat souhaité 21 été 2002 pour l'été la même chose pour le quatre saisons
=SI(ET(A1>=$I$1;A1<$I$2);REMPLACER(TEXTE(JOUR(A1);"00")&TEXTE(MOIS(A1);"00")&TEXTE(ANNEE(A1);"0000");3;2;" printemps ");SI(ET(A1>=$I$2;A1<$I$3);REMPLACER(TEXTE(JOUR(A1);"00")&TEXTE(MOIS(A1);"00")&TEXTE(ANNEE(A1);"0000");3;2;" été ");SI(ET(A1>=$I$3;A1<$I$4);REMPLACER(TEXTE(JOUR(A1);"00")&TEXTE(MOIS(A1);"00")&TEXTE(ANNEE(A1);"0000");3;2;" automne ");REMPLACER(TEXTE(JOUR(A1);"00")&TEXTE(MOIS(A1);"00")&TEXTE(ANNEE(A1);"0000");3;2;" hiver "))))
pour traiter qu'une saison à la fois
=SI(ET(A1>=$I$2;A1<$I$3);REMPLACER(TEXTE(JOUR(A1);"00")&TEXTE(MOIS(A1);"00")&TEXTE(ANNEE(A1);"0000");3;2;" été ");"")
Pour gérer manuellement les dates
=REMPLACER(TEXTE(JOUR(A1);"00")&TEXTE(MOIS(A1);"00")&TEXTE(ANNEE(A1);"0000");3;2;" été ")
un petit montage
https://www.cjoint.com/?gknQEI8QVT
Je regarde en VBA le code
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
bj ; esaye de faire la macro manuellemant avec word 2007 et le developeur ( a installer avec options word) salut
Re tout le monde,
Je reviens, ai je bien compris, veux tu afficher simplement la saison à la place de la date
ex. pour 01/01/2002 afficher hiver
01/01/2002 ou 01 hiver 2002
01/01/2002 ou encore 01/01/2002 hiver
suivant ta demande, jai une macro assez simple qui en fonction de la date de départ affiche ce format 01 hiver 2002, mais tout peut être adapté.
Je reviens, ai je bien compris, veux tu afficher simplement la saison à la place de la date
ex. pour 01/01/2002 afficher hiver
01/01/2002 ou 01 hiver 2002
01/01/2002 ou encore 01/01/2002 hiver
suivant ta demande, jai une macro assez simple qui en fonction de la date de départ affiche ce format 01 hiver 2002, mais tout peut être adapté.
Merci à tous pour vos réponses
en tenant compte des solstices
par VBA
par formule (solution alternative à celle de l'ami Mike)