Je cherche depuis environ une heure à savoir comment procéder dans Excel.
J'ai un fichier Excel créé à partir d'un ancien système et je récupère les informations d'une base de données SQL Server. Je vais les saisir dans la base de données SQL Server et je voudrais que les dates correspondent.
J'ai essayé de créer un format personnalisé, mais je ne suis pas sûr de l'avoir fait correctement. J'ai trouvé plusieurs endroits où ils veulent aller dans l'autre sens mm/dd/yyyy
à yyyymmdd
mais ils n'ont pas été utiles.
Je ne connais pas bien l’utilisation de VBA dans les produits Microsoft, sinon je suis certain que ce serait une tâche simple.
J'ai deux colonnes distinctes qui doivent être modifiées.
Comment formater la colonne entière de (float)
yyyymmdd à un (Date)
mm/jj/aaaa
Vous pouvez convertir la valeur en date à l'aide d'une formule comme celle-ci, située à côté de la cellule:
=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))
Où A1 est le champ que vous devez convertir.
Vous pouvez également utiliser ce code dans VBA:
Sub ConvertYYYYMMDDToDate()
Dim c As Range
For Each c In Selection.Cells
c.Value = DateSerial(Left(c.Value, 4), Mid(c.Value, 5, 2), Right(c.Value, 2))
'Following line added only to enforce the format.
c.NumberFormat = "mm/dd/yyyy"
Next
End Sub
Il suffit de mettre en surbrillance les cellules que vous souhaitez corriger et d’exécuter le code.
Notez que RJohnson mentionné dans les commentaires, ce code se trompera si l'une des cellules que vous avez sélectionnées est vide. Vous pouvez ajouter une condition sur c.value pour ignorer la mise à jour si elle est vide.
Avez-vous des rangées de données (horizontales) comme vous l'avez indiqué ou COLUMNS (verticales)?
Si c'est le dernier cas, vous pouvez utiliser la fonctionnalité "Texte en colonnes" pour convertir une colonne entière "in situ" - pour ce faire:
Sélectionnez la colonne> Données> Texte en colonnes> Suivant> Suivant> Choisissez "Date" sous "Format de données de la colonne" et "AMJ" dans la liste déroulante> Terminer.
.... sinon vous pouvez convertir avec une formule en utilisant
=TEXT(A1,"0000-00-00")+0
et le format au format de date requis
pour convertir dd/mm/yyyy
en mm/dd/yyyy
=DATE(RIGHT(a1,4),MID(a1,4,2),LEFT(a1,2))
Voici une version nue:
Disons que vous avez une date dans la cellule A1 dans le format que vous avez décrit. Par exemple: 19760210
.
Alors cette formule vous donnera la date que vous voulez:
=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)).
Sur mon système (Excel 2010), cela fonctionne avec des chaînes ou des flottants.
Trouvé un autre (manuel) réponse qui a bien fonctionné pour moi