[VBA] Découper le contenu d'une cellule
Résolu
Carotte77
Messages postés
543
Date d'inscription
Statut
Membre
Dernière intervention
-
Carotte77 Messages postés 543 Date d'inscription Statut Membre Dernière intervention -
Carotte77 Messages postés 543 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai une feuille excel, dont la première colonne indique une date et une heure au format AAAAMMJJHHmm (Exemple 200901092000 pour le 09 janvier 2009 à 20h00). Je voudrais en fait récupérer les valeurs de l'année, du mois, du jour, des heures et des minutes, les stocker dans 5 variables (une pour chaque valeur de date), afin de reconstituer une date facilement compréhensible.
Étant donné que j'ai plus de 2500 dates comme celles là à traiter, je voudrais automatiser cela avec un code VBA.
J'ai déjà commencé, mais il me manque la partie la plus importante, celle qui va sélectionner les 4 premiers caractères et les enregistrer dans ma variable année, ensuite les deux suivants pour la variable mois, les deux suivants pour la variable jour, les deux suivants pour la variable heures, et les deux derniers pour la variable minutes.
J'ai vu qu'on pouvait utiliser les propriétés Left, Right ou Mid, ou la fonction Split pour séparer, mais je ne sais pas lui dire de tronquer la chaîne de caractères de la sorte : AAAA|MM|JJ|HH|mm...
Merci d'avance pour votre aide !
PS : j'utilise Excel 2007.
J'ai une feuille excel, dont la première colonne indique une date et une heure au format AAAAMMJJHHmm (Exemple 200901092000 pour le 09 janvier 2009 à 20h00). Je voudrais en fait récupérer les valeurs de l'année, du mois, du jour, des heures et des minutes, les stocker dans 5 variables (une pour chaque valeur de date), afin de reconstituer une date facilement compréhensible.
Étant donné que j'ai plus de 2500 dates comme celles là à traiter, je voudrais automatiser cela avec un code VBA.
J'ai déjà commencé, mais il me manque la partie la plus importante, celle qui va sélectionner les 4 premiers caractères et les enregistrer dans ma variable année, ensuite les deux suivants pour la variable mois, les deux suivants pour la variable jour, les deux suivants pour la variable heures, et les deux derniers pour la variable minutes.
J'ai vu qu'on pouvait utiliser les propriétés Left, Right ou Mid, ou la fonction Split pour séparer, mais je ne sais pas lui dire de tronquer la chaîne de caractères de la sorte : AAAA|MM|JJ|HH|mm...
Merci d'avance pour votre aide !
PS : j'utilise Excel 2007.
A voir également:
- [VBA] Découper le contenu d'une cellule
- Comment découper un pdf - Guide
- Fusionner deux cellules excel en gardant le contenu - Guide
- Excel compter cellule couleur sans vba - Guide
- Découper mp4 - Guide
- Excel cellule couleur si condition texte - Guide
6 réponses
bonjour
Ceci devrait effectuer ta fonction :
Tu remplaces le 2 de la fonction offset par le nombre de colonnes de décalage par rapport à A où tu veux ton résultat sous format date/heure exploitable.
Ceci devrait effectuer ta fonction :
For Each cel In Columns(1).Cells If cel.Value <> "" Then cel.Offset(0, 2).Value = _ DateValue(Mid(cel.Value, 7, 2) & "/" _ & Mid(cel.Value, 5, 2) & "/" _ & Mid(cel.Value, 1, 4)) _ + TimeValue(Mid(cel.Value, 9, 2) & ":" _ & Mid(cel.Value, 11, 2)) End If Next
Tu remplaces le 2 de la fonction offset par le nombre de colonnes de décalage par rapport à A où tu veux ton résultat sous format date/heure exploitable.
bonjour
'cel' est une variable à définir : dim cel as range
Elle représente chaque cellule trouvée en colonne A
'cel' est une variable à définir : dim cel as range
Elle représente chaque cellule trouvée en colonne A
Par contre, juste une petite question (oui, je t'embête encore...) :
Lorsque l'heure de la cellule concernée est minuit, il ne transforme pas les 0000. Par exemple, pour "200812020000", avec ton code, il me transforme en "02/12/2008", et non pas en "02/12/2008 00:00" comme pour tous les autres horaires.
Aurais-tu une solution ?
Lorsque l'heure de la cellule concernée est minuit, il ne transforme pas les 0000. Par exemple, pour "200812020000", avec ton code, il me transforme en "02/12/2008", et non pas en "02/12/2008 00:00" comme pour tous les autres horaires.
Aurais-tu une solution ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tout d'abord merci pour ta réponse.
Lorsque j'insère ton code à ma feuille, il me met que 'cel' est une variable non définie.
J'ai essayé en remplaçant tes 'cel' par des 'Cells', mais à ce moment là, il me dit qu'une variable est requise...