Problème de date

Bonjour, cela fait quelques jours que je vous embêtes pour finir un fichier mais il me reste un dernier petit problème à résoudre!!!!!!

Grace à ce forum, je peut alimenter mes tableaux via des d'autres fichiers Excel et cela me copie colle les 8 caractères avant l'extension qui me serve à avoir la date de reporting de ce fichier. Petit soucis, c'est qu'entre le 1 et le 9 du mois, Excel m'enlève le 0 et n'arrive pas mettre en format date, par exemple, 3102023.

Ca doit être surement très simple à résoudre mais je bug !!!!!!

Si quelqu'un a une idée !!!!!

Bonjour,

Si c'est via du VBA par exemple, il faut tenter la chose suivante: Format(maDate, "ddmmyyyy"). En clair lui préciser un format à générer en texte en lui disant bien qu'il faut 2 caractères pour le jour, 2 pour le mois, 4 pour l'année.

bonjour,

edit : hello ausecour

le zéro n'est pas présent pour le jour du mois (<10), est-ce également le cas pour le mois(<10) ? auquel cas il y aura des cas ambigus.

exemple

1122023 premier décembre ou 11 février ?

Je ne pense pas que ce soit le même cas pour le mois car il est entouré par la date du jour et l'année.

Je vous joins le fichier et un fichier de reporting.

Un grand merci par avance à vous !!!

bonjour,

adapte cette instruction RANGE("F26") ainsi dans la procédure Private Sub BTN1_Click()

    ' Affichez les 6 caractères dans la cellule A1
    Range("F26") = DateSerial(Right(caracteres, 4), Mid(caracteres, 3, 2), Left(caracteres, 2))

Cela me renvoi une erreur d'éxécution 13 incompatibilité de type

bonsoir,

j'ai vu que j'avais écrit la 3ème occurrence de "caracteres" avec un accent. j'ai corrigé mon message précédent.

Bonjour,

Voici une solution possible.

Private Sub BTN1_Click()

    Dim CheminFichier As String
    Dim nomFichier As String
    Dim nomFichierSansExtension As String
    Dim caracteres As String
    Dim FeuilleSource As Worksheet
    Dim TableauDestination As ListObject
    Dim DerniereLigneSource As Long

    ' Désactive la mise à jour de l'écran pour améliorer les performances
    Application.ScreenUpdating = False

    ' Ouvre la boîte de dialogue pour sélectionner le fichier source

    With Application.FileDialog(msoFileDialogFilePicker)

        If .Show = -1 Then ' Si l'utilisateur clique sur Ouvrir
            CheminFichier = .SelectedItems(1)
        Else
            Exit Sub ' L'utilisateur a annulé la sélection
        End If
    End With

    ' Extraire le nom du fichier sans le chemin d'accès
    nomFichier = Right(CheminFichier, Len(CheminFichier) - InStrRev(CheminFichier, Application.PathSeparator))

    ' Supprimez l'extension du nom de fichier
    nomFichierSansExtension = Left(nomFichier, InStrRev(nomFichier, ".") - 1)

    ' Extrait les 8 caractères précédant l'extension
    If Len(nomFichierSansExtension) >= 8 Then
        caracteres = Right(nomFichierSansExtension, 8)
        If Not IsNumeric(Left(cracteres, 1)) Then caracteres = Right(nomFichierSansExtension, 7)
    End If

    ' Affichez les 6 caractères dans la cellule A1
    Range("F26") = caracteres

    ' Définit la feuille de calcul source
    Set FeuilleSource = Workbooks.Open(CheminFichier).Worksheets(1) ' Vous pouvez ajuster le numéro de la feuille si nécessaire

    ' Définit le tableau de destination
    On Error Resume Next
    Set TableauDestination = ThisWorkbook.Sheets("Calcul").ListObjects("TBL_HSTS") ' Assurez-vous que la feuille et le tableau sont correctement nommés
    On Error GoTo 0

    ' Vérifie si le tableau de destination existe
    If Not TableauDestination Is Nothing Then
        ' Trouve la dernière ligne de la colonne A dans la feuille source
        DerniereLigneSource = FeuilleSource.Cells(FeuilleSource.Rows.Count, "A").End(xlUp).Row

        ' Copie les données de la colonne A, B, C et D de la feuille source vers le tableau de destination
        If DerniereLigneSource >= 2 Then ' Vérifie s'il y a au moins 1 ligne de données (à partir de la ligne 2 de la source)
            TableauDestination.ListRows.Add
            FeuilleSource.Range("A2:C" & DerniereLigneSource).Copy TableauDestination.ListColumns(1).DataBodyRange
            MsgBox "Données copiées avec succès!", vbInformation
        Else
            MsgBox "La feuille source ne contient pas de données à copier.", vbExclamation
        End If
    Else
        MsgBox "Le tableau de destination n'a pas été trouvé dans la feuille 'Calcul'.", vbExclamation
    End If

    ' Ferme le fichier source sans enregistrer les modifications
    Workbooks.Open(CheminFichier).Close SaveChanges:=False
End Sub

Un grand MERCI les gars, vous êtes top !!!!!!!!!

Bonne soirée !

Rechercher des sujets similaires à "probleme date"