Création d'une macro
Fermé
Stephane13
-
15 août 2019 à 11:36
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 17 août 2019 à 12:34
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 17 août 2019 à 12:34
Bonjour,
Je souhaiterai créer une macro Excel me permettant, sur sélection de cellules, de modifier une date US (MM/JJ/AAAA) en date FR (JJ/MM/AAAA).
Je suis amené à traiter des dizaines de milliers de lignes dans mes tableurs et la solution "Données - Convertir - Délimité - Date : MJA" n'est plus viable.
Je voudrais donc créer une macro qui me fasse ce travail (avec touche de raccourci) sur des cellules que je sélectionnerais.
J'ai tenté de faire une macro enregistrée qui ne fonctionne pas car je dois justement avoir la possibilité de sélectionner librement les cellules que je souhaite transformer.
En vous remerciant par avance pour votre aide
bonne journée
Je souhaiterai créer une macro Excel me permettant, sur sélection de cellules, de modifier une date US (MM/JJ/AAAA) en date FR (JJ/MM/AAAA).
Je suis amené à traiter des dizaines de milliers de lignes dans mes tableurs et la solution "Données - Convertir - Délimité - Date : MJA" n'est plus viable.
Je voudrais donc créer une macro qui me fasse ce travail (avec touche de raccourci) sur des cellules que je sélectionnerais.
J'ai tenté de faire une macro enregistrée qui ne fonctionne pas car je dois justement avoir la possibilité de sélectionner librement les cellules que je souhaite transformer.
En vous remerciant par avance pour votre aide
bonne journée
A voir également:
- Création d'une macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Creation compte gmail - Guide
- Création compte google - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
- Création site web - Guide
7 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 312
15 août 2019 à 11:44
15 août 2019 à 11:44
Bonjour,
.."J'ai tenté de faire une macro enregistrée qui ne fonctionne pas car je dois justement avoir la possibilité de sélectionner librement les cellules que je souhaite transformer. "...
Bin montre la pour qu'on puisse t’aider
.."J'ai tenté de faire une macro enregistrée qui ne fonctionne pas car je dois justement avoir la possibilité de sélectionner librement les cellules que je souhaite transformer. "...
Bin montre la pour qu'on puisse t’aider
Bonjour,
Voici la macro créée en mode enregistrement :
Sub DATEUS()
'
' DATEUS Macro
'
' Touche de raccourci du clavier: Ctrl+n
'
Range("A2:A8").Select
Selection.TextToColumns Destination:=Range("A2"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 3), TrailingMinusNumbers:=True
End Sub
Par défaut elle fonctionne uniquement sur les cellules A2-A8
L'idée est qu'elle fonctionne sur des cellules que je veux sélectionner avec la souris
Merci pour votre aide
Bonne journée
Voici la macro créée en mode enregistrement :
Sub DATEUS()
'
' DATEUS Macro
'
' Touche de raccourci du clavier: Ctrl+n
'
Range("A2:A8").Select
Selection.TextToColumns Destination:=Range("A2"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 3), TrailingMinusNumbers:=True
End Sub
Par défaut elle fonctionne uniquement sur les cellules A2-A8
L'idée est qu'elle fonctionne sur des cellules que je veux sélectionner avec la souris
Merci pour votre aide
Bonne journée
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 312
17 août 2019 à 08:58
17 août 2019 à 08:58
Bonjour
Bonjour
pour sélectionner le départ et l'arrivée ( à incorporer dans ta macro)
Bonjour
pour sélectionner le départ et l'arrivée ( à incorporer dans ta macro)
Dim Zone As Range, Cible As Range
Zone = Application.InputBox(prompt:="Sélectionnez la zone à transposer", Type:=64)
Cible = Application.InputBox(prompt:="Sélectionnez la cellule de destination", Type:=8)
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
17 août 2019 à 09:56
17 août 2019 à 09:56
Bonjour
Pour compléter la proposition de michel que je salue cordialement au passage, peux tu envoyer un bout de ton fichier et préciser le résultat attendu (en particulier : où veux tu envoyer la date modifiée). Utilises https://mon-partage.fr/ et joins le lien obtenu à ton prochain message
Cdlmnt
Pour compléter la proposition de michel que je salue cordialement au passage, peux tu envoyer un bout de ton fichier et préciser le résultat attendu (en particulier : où veux tu envoyer la date modifiée). Utilises https://mon-partage.fr/ et joins le lien obtenu à ton prochain message
Cdlmnt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 255
17 août 2019 à 10:10
17 août 2019 à 10:10
Bonjour,
il faut traiter tes dates au moment de l'importation et pas après. Sinon tu risques d'avoir des mauvaises interprétations que tu ne peux plus détecter.
eric
il faut traiter tes dates au moment de l'importation et pas après. Sinon tu risques d'avoir des mauvaises interprétations que tu ne peux plus détecter.
eric
Bonjour Eriiic
J'ai oublié de préciser un détail important dans mon post.
Le tableeux excel que je traite est le résultat d'une conversion d'un document pdf (non scanné) réalisé avec le logiciel PDF2XL
C'est pour cela que je dois pouvoir intervenir sur la sélection des cellules comme je le souhaite.
Cordialement Stéphane
J'ai oublié de préciser un détail important dans mon post.
Le tableeux excel que je traite est le résultat d'une conversion d'un document pdf (non scanné) réalisé avec le logiciel PDF2XL
C'est pour cela que je dois pouvoir intervenir sur la sélection des cellules comme je le souhaite.
Cordialement Stéphane
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 255
17 août 2019 à 12:34
17 août 2019 à 12:34
Dans ce cas es-tu sûr à 100% de ne pas avoir de dates comme le 03/04 qui serait devenu le 04/03 et que tu le considères comme valide ?
A ta place je ferai quelques sondages pour m'en assurer...
Si pb, le plus sûr c'est de copier le texte du pdf (non scanné, ça tombe bien) et de le coller dans des colonnes au format texte.
Comme ça tu es sûr d'avoir l'original et une simple formule te fabrique la date correcte à coup sûr :
eric
A ta place je ferai quelques sondages pour m'en assurer...
Si pb, le plus sûr c'est de copier le texte du pdf (non scanné, ça tombe bien) et de le coller dans des colonnes au format texte.
Comme ça tu es sûr d'avoir l'original et une simple formule te fabrique la date correcte à coup sûr :
=SI(ET(STXT(A2;3;1)="/";STXT(A2;6;1)="/");DATE(DROITE(A2;4);GAUCHE(A2;2);STXT(A2;4;2));"")
eric
Bonjour,
Tu peux essayer ce code
Cordialement.
Tu peux essayer ce code
Sub DATEUS()
' Touche de raccourci du clavier: Ctrl+n
Dim Plage As Range, Cel As Range
Set Plage = Application.InputBox(prompt:="Sélectionnez la plage à convertir", Type:=8)
For Each Cel In Plage
If IsDate(Cel.Value) Then
Cel.NumberFormat = "dd/mm/yyyy"
End If
Next Cel
End Sub
Cordialement.
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
Modifié le 17 août 2019 à 12:16
Modifié le 17 août 2019 à 12:16
En attendant ton fichier, peut être ceci pourrait convenir
https://mon-partage.fr/f/TK54aqlj/
Cdlmnt
Public Sub OK() Dim cel As Range, dus As String, dfr As String, d As Long Application.ScreenUpdating = False For Each cel In Selection dus = cel.Value dfr = Mid(dus, 4, 2) & "/" & Left(dus, 2) & "/" & Right(dus, 4) d = CDate(dfr) cel.Value = d cel.NumberFormat = "dd/mm/yyyy" Next cel End Sub
https://mon-partage.fr/f/TK54aqlj/
Cdlmnt