[VBA] Découper le contenu d'une cellule
Résolu
Carotte77
Messages postés
579
Statut
Membre
-
Carotte77 Messages postés 579 Statut Membre -
Carotte77 Messages postés 579 Statut Membre -
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.
--
Cochez "Problème résolu" au début de la discussion lorsque votre problème est résolu ! Merci ;)
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.
--
Cochez "Problème résolu" au début de la discussion lorsque votre problème est résolu ! Merci ;)
Configuration: Microsoft Windows XP Professional SP3 DirectX 9.0c Intel Pentium 4 530, 3000 MHz 1024 Mo DDR2-533 Carte graphique HIS HD IceQ4 Radeon 4650 (1024 Mo) Dell E173FP [17" LCD] Intel 82801FB ICH6 - AC'97 Audio Controller [B-1] Lecteur de disquettes Disque dur ST3160023AS (160 Go, 7200 RPM, SATA) Disque dur ST3320620AS (298 Go, IDE) NEC DVD+-RW ND-3450A (DVD+R9:2.4x, DVD+RW:16x/4x, DVD-RW:8x/4x, DVD-ROM:16x, CD:48x/24x/48x DVD+RW/DVD-RW) Clavier Souris HID Carte réseau NETGEAR 108 Mbps Wireless PCI Adapter WG311T Imprimante Canon iP5200 Webcam Philips ToUcam Pro Camera
6 réponses
-
bonjour
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 -
Merci beaucoup Gbinforme !!
Problème résolu ;)
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 ? -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
bonjour
Il fait bien la traduction mais c'est excel qui ne l'affiche pas.
Sur ta colonne il suffit d'appliquer le format personnalisé : jj/mm/aaaa hh:mm
et les zéros seront affichés sans souci. -