Bonjour,
Je récupère, en téléchargement dans un fichier, des dates en formats
mixtes français et anglais tel que
30/04/2009 pour le 30 avril, et dans une cellule au dessous 05/04/2009
pour le 4 Mai 2009.
Mes opérations sur les dates ne marchent pas (les dates devraient être
dans un sens croissant, et à cause du format anglais, je ne sais plus
gérer....)
Pouvez vous m'aidez ?
D'avance merci à tous
Al
Bonjour,
Je récupère, en téléchargement dans un fichier, des dates en formats
mixtes français et anglais tel que
30/04/2009 pour le 30 avril, et dans une cellule au dessous 05/04/2009
pour le 4 Mai 2009.
Mes opérations sur les dates ne marchent pas (les dates devraient être
dans un sens croissant, et à cause du format anglais, je ne sais plus
gérer....)
Pouvez vous m'aidez ?
D'avance merci à tous
Al
Bonjour,
Je récupère, en téléchargement dans un fichier, des dates en formats
mixtes français et anglais tel que
30/04/2009 pour le 30 avril, et dans une cellule au dessous 05/04/2009
pour le 4 Mai 2009.
Mes opérations sur les dates ne marchent pas (les dates devraient être
dans un sens croissant, et à cause du format anglais, je ne sais plus
gérer....)
Pouvez vous m'aidez ?
D'avance merci à tous
Al
Ceci est la même procédure, mais elle gère automatiquement
le séparateur des éléments d'une date défini dans le panneau
de configuration :
NB- La fonction Split() requiert Excel 2000 ou plus récent.
'--------------------------------------
Sub test()
Dim Rg As Range, T, Sep As String
Dim X, A As Long, B As Integer
Sep = Application.International(xlDateSeparator)
With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
X = Rg.Value
End With
For A = 1 To UBound(X, 1)
For B = 1 To UBound(X, 2)
T = Split(X(A, B), Sep)
If Val(T(0)) <= 12 Then
X(A, B) = T(1) & Sep & T(0) & Sep & T(2)
End If
Next
Next
Rg.Clear
Rg.NumberFormat = "DD/MM/YY"
Rg.Value = X
End Sub
'--------------------------------------
"MichDenis" a écrit dans le message de groupe de
discussion :
#
Bonjour Al,
Essaie cette macro pour la colonne contenant tes dates.
Adapte dans la macro, le nom de la feuille et la plage de
cellules concernées.
(procédure à tester ! )
'----------------------------------------
Sub test()
Dim Rg As Range, T()
Dim X, A As Long, B As Integer
With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
X = Rg.Value
End With
For A = 1 To UBound(X, 1)
For B = 1 To UBound(X, 2)
T = Split(X(A, B), "-")
If Val(T(0)) <= 12 Then
tt = T(1) & "-" & T(0) & "-" & T(2)
X(A, B) = T(1) & "-" & T(0) & "-" & T(2)
End If
Next
Next
Rg.Clear
Rg.NumberFormat = "DD/MM/YY"
Rg.Value = X
End Sub
'----------------------------------------
"Al" a écrit dans le message de groupe de discussion :
4a0fcf15$0$16588$
Bonjour,
Je récupère, en téléchargement dans un fichier, des dates en formats
mixtes
français et anglais tel que
30/04/2009 pour le 30 avril, et dans une cellule au dessous 05/04/2009
pour
le 4 Mai 2009.
Mes opérations sur les dates ne marchent pas (les dates devraient être
dans
un sens croissant, et à cause du format anglais, je ne sais plus
gérer....)
Pouvez vous m'aidez ?
D'avance merci à tous
Al
Ceci est la même procédure, mais elle gère automatiquement
le séparateur des éléments d'une date défini dans le panneau
de configuration :
NB- La fonction Split() requiert Excel 2000 ou plus récent.
'--------------------------------------
Sub test()
Dim Rg As Range, T, Sep As String
Dim X, A As Long, B As Integer
Sep = Application.International(xlDateSeparator)
With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
X = Rg.Value
End With
For A = 1 To UBound(X, 1)
For B = 1 To UBound(X, 2)
T = Split(X(A, B), Sep)
If Val(T(0)) <= 12 Then
X(A, B) = T(1) & Sep & T(0) & Sep & T(2)
End If
Next
Next
Rg.Clear
Rg.NumberFormat = "DD/MM/YY"
Rg.Value = X
End Sub
'--------------------------------------
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de groupe de
discussion :
#PxXkKu1JHA.1864@TK2MSFTNGP02.phx.gbl...
Bonjour Al,
Essaie cette macro pour la colonne contenant tes dates.
Adapte dans la macro, le nom de la feuille et la plage de
cellules concernées.
(procédure à tester ! )
'----------------------------------------
Sub test()
Dim Rg As Range, T()
Dim X, A As Long, B As Integer
With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
X = Rg.Value
End With
For A = 1 To UBound(X, 1)
For B = 1 To UBound(X, 2)
T = Split(X(A, B), "-")
If Val(T(0)) <= 12 Then
tt = T(1) & "-" & T(0) & "-" & T(2)
X(A, B) = T(1) & "-" & T(0) & "-" & T(2)
End If
Next
Next
Rg.Clear
Rg.NumberFormat = "DD/MM/YY"
Rg.Value = X
End Sub
'----------------------------------------
"Al" <Al@wanadoo.fr> a écrit dans le message de groupe de discussion :
4a0fcf15$0$16588$426a34cc@news.free.fr...
Bonjour,
Je récupère, en téléchargement dans un fichier, des dates en formats
mixtes
français et anglais tel que
30/04/2009 pour le 30 avril, et dans une cellule au dessous 05/04/2009
pour
le 4 Mai 2009.
Mes opérations sur les dates ne marchent pas (les dates devraient être
dans
un sens croissant, et à cause du format anglais, je ne sais plus
gérer....)
Pouvez vous m'aidez ?
D'avance merci à tous
Al
Ceci est la même procédure, mais elle gère automatiquement
le séparateur des éléments d'une date défini dans le panneau
de configuration :
NB- La fonction Split() requiert Excel 2000 ou plus récent.
'--------------------------------------
Sub test()
Dim Rg As Range, T, Sep As String
Dim X, A As Long, B As Integer
Sep = Application.International(xlDateSeparator)
With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
X = Rg.Value
End With
For A = 1 To UBound(X, 1)
For B = 1 To UBound(X, 2)
T = Split(X(A, B), Sep)
If Val(T(0)) <= 12 Then
X(A, B) = T(1) & Sep & T(0) & Sep & T(2)
End If
Next
Next
Rg.Clear
Rg.NumberFormat = "DD/MM/YY"
Rg.Value = X
End Sub
'--------------------------------------
"MichDenis" a écrit dans le message de groupe de
discussion :
#
Bonjour Al,
Essaie cette macro pour la colonne contenant tes dates.
Adapte dans la macro, le nom de la feuille et la plage de
cellules concernées.
(procédure à tester ! )
'----------------------------------------
Sub test()
Dim Rg As Range, T()
Dim X, A As Long, B As Integer
With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
X = Rg.Value
End With
For A = 1 To UBound(X, 1)
For B = 1 To UBound(X, 2)
T = Split(X(A, B), "-")
If Val(T(0)) <= 12 Then
tt = T(1) & "-" & T(0) & "-" & T(2)
X(A, B) = T(1) & "-" & T(0) & "-" & T(2)
End If
Next
Next
Rg.Clear
Rg.NumberFormat = "DD/MM/YY"
Rg.Value = X
End Sub
'----------------------------------------
"Al" a écrit dans le message de groupe de discussion :
4a0fcf15$0$16588$
Bonjour,
Je récupère, en téléchargement dans un fichier, des dates en formats
mixtes
français et anglais tel que
30/04/2009 pour le 30 avril, et dans une cellule au dessous 05/04/2009
pour
le 4 Mai 2009.
Mes opérations sur les dates ne marchent pas (les dates devraient être
dans
un sens croissant, et à cause du format anglais, je ne sais plus
gérer....)
Pouvez vous m'aidez ?
D'avance merci à tous
Al
Merci, super,
Ca marche.....
"MichDenis" a écrit dans le message de news:Ceci est la même procédure, mais elle gère automatiquement
le séparateur des éléments d'une date défini dans le panneau
de configuration :
NB- La fonction Split() requiert Excel 2000 ou plus récent.
'--------------------------------------
Sub test()
Dim Rg As Range, T, Sep As String
Dim X, A As Long, B As Integer
Sep = Application.International(xlDateSeparator)
With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
X = Rg.Value
End With
For A = 1 To UBound(X, 1)
For B = 1 To UBound(X, 2)
T = Split(X(A, B), Sep)
If Val(T(0)) <= 12 Then
X(A, B) = T(1) & Sep & T(0) & Sep & T(2)
End If
Next
Next
Rg.Clear
Rg.NumberFormat = "DD/MM/YY"
Rg.Value = X
End Sub
'--------------------------------------
"MichDenis" a écrit dans le message de groupe de
discussion :
#
Bonjour Al,
Essaie cette macro pour la colonne contenant tes dates.
Adapte dans la macro, le nom de la feuille et la plage de
cellules concernées.
(procédure à tester ! )
'----------------------------------------
Sub test()
Dim Rg As Range, T()
Dim X, A As Long, B As Integer
With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
X = Rg.Value
End With
For A = 1 To UBound(X, 1)
For B = 1 To UBound(X, 2)
T = Split(X(A, B), "-")
If Val(T(0)) <= 12 Then
tt = T(1) & "-" & T(0) & "-" & T(2)
X(A, B) = T(1) & "-" & T(0) & "-" & T(2)
End If
Next
Next
Rg.Clear
Rg.NumberFormat = "DD/MM/YY"
Rg.Value = X
End Sub
'----------------------------------------
"Al" a écrit dans le message de groupe de discussion :
4a0fcf15$0$16588$
Bonjour,
Je récupère, en téléchargement dans un fichier, des dates en formats
mixtes
français et anglais tel que
30/04/2009 pour le 30 avril, et dans une cellule au dessous 05/04/2009
pour
le 4 Mai 2009.
Mes opérations sur les dates ne marchent pas (les dates devraient être
dans
un sens croissant, et à cause du format anglais, je ne sais plus
gérer....)
Pouvez vous m'aidez ?
D'avance merci à tous
Al
Merci, super,
Ca marche.....
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
ODB2Fdu1JHA.1096@TK2MSFTNGP06.phx.gbl...
Ceci est la même procédure, mais elle gère automatiquement
le séparateur des éléments d'une date défini dans le panneau
de configuration :
NB- La fonction Split() requiert Excel 2000 ou plus récent.
'--------------------------------------
Sub test()
Dim Rg As Range, T, Sep As String
Dim X, A As Long, B As Integer
Sep = Application.International(xlDateSeparator)
With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
X = Rg.Value
End With
For A = 1 To UBound(X, 1)
For B = 1 To UBound(X, 2)
T = Split(X(A, B), Sep)
If Val(T(0)) <= 12 Then
X(A, B) = T(1) & Sep & T(0) & Sep & T(2)
End If
Next
Next
Rg.Clear
Rg.NumberFormat = "DD/MM/YY"
Rg.Value = X
End Sub
'--------------------------------------
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de groupe de
discussion :
#PxXkKu1JHA.1864@TK2MSFTNGP02.phx.gbl...
Bonjour Al,
Essaie cette macro pour la colonne contenant tes dates.
Adapte dans la macro, le nom de la feuille et la plage de
cellules concernées.
(procédure à tester ! )
'----------------------------------------
Sub test()
Dim Rg As Range, T()
Dim X, A As Long, B As Integer
With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
X = Rg.Value
End With
For A = 1 To UBound(X, 1)
For B = 1 To UBound(X, 2)
T = Split(X(A, B), "-")
If Val(T(0)) <= 12 Then
tt = T(1) & "-" & T(0) & "-" & T(2)
X(A, B) = T(1) & "-" & T(0) & "-" & T(2)
End If
Next
Next
Rg.Clear
Rg.NumberFormat = "DD/MM/YY"
Rg.Value = X
End Sub
'----------------------------------------
"Al" <Al@wanadoo.fr> a écrit dans le message de groupe de discussion :
4a0fcf15$0$16588$426a34cc@news.free.fr...
Bonjour,
Je récupère, en téléchargement dans un fichier, des dates en formats
mixtes
français et anglais tel que
30/04/2009 pour le 30 avril, et dans une cellule au dessous 05/04/2009
pour
le 4 Mai 2009.
Mes opérations sur les dates ne marchent pas (les dates devraient être
dans
un sens croissant, et à cause du format anglais, je ne sais plus
gérer....)
Pouvez vous m'aidez ?
D'avance merci à tous
Al
Merci, super,
Ca marche.....
"MichDenis" a écrit dans le message de news:Ceci est la même procédure, mais elle gère automatiquement
le séparateur des éléments d'une date défini dans le panneau
de configuration :
NB- La fonction Split() requiert Excel 2000 ou plus récent.
'--------------------------------------
Sub test()
Dim Rg As Range, T, Sep As String
Dim X, A As Long, B As Integer
Sep = Application.International(xlDateSeparator)
With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
X = Rg.Value
End With
For A = 1 To UBound(X, 1)
For B = 1 To UBound(X, 2)
T = Split(X(A, B), Sep)
If Val(T(0)) <= 12 Then
X(A, B) = T(1) & Sep & T(0) & Sep & T(2)
End If
Next
Next
Rg.Clear
Rg.NumberFormat = "DD/MM/YY"
Rg.Value = X
End Sub
'--------------------------------------
"MichDenis" a écrit dans le message de groupe de
discussion :
#
Bonjour Al,
Essaie cette macro pour la colonne contenant tes dates.
Adapte dans la macro, le nom de la feuille et la plage de
cellules concernées.
(procédure à tester ! )
'----------------------------------------
Sub test()
Dim Rg As Range, T()
Dim X, A As Long, B As Integer
With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
X = Rg.Value
End With
For A = 1 To UBound(X, 1)
For B = 1 To UBound(X, 2)
T = Split(X(A, B), "-")
If Val(T(0)) <= 12 Then
tt = T(1) & "-" & T(0) & "-" & T(2)
X(A, B) = T(1) & "-" & T(0) & "-" & T(2)
End If
Next
Next
Rg.Clear
Rg.NumberFormat = "DD/MM/YY"
Rg.Value = X
End Sub
'----------------------------------------
"Al" a écrit dans le message de groupe de discussion :
4a0fcf15$0$16588$
Bonjour,
Je récupère, en téléchargement dans un fichier, des dates en formats
mixtes
français et anglais tel que
30/04/2009 pour le 30 avril, et dans une cellule au dessous 05/04/2009
pour
le 4 Mai 2009.
Mes opérations sur les dates ne marchent pas (les dates devraient être
dans
un sens croissant, et à cause du format anglais, je ne sais plus
gérer....)
Pouvez vous m'aidez ?
D'avance merci à tous
Al
| UBound(X,1) me donne une erreur "Tableau attendu"
Quand tu as défini ta plage de cellules par ce code :
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
X = Rg.Value
Si la variable "Range" Rg ne représente qu'une cellule alors
X ne sera pas une variable de type tableau (colonne par y lignes)
mais représentera simplement la valeur d'une cellule
En conséquence, on ne peut pas ces lignes de code car elle
suppose que X est un tableau à 2 dimensions.
For A = 1 To UBound(X, 1)
For B = 1 To UBound(X, 2)
| UBound(X,1) me donne une erreur "Tableau attendu"
Quand tu as défini ta plage de cellules par ce code :
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
X = Rg.Value
Si la variable "Range" Rg ne représente qu'une cellule alors
X ne sera pas une variable de type tableau (colonne par y lignes)
mais représentera simplement la valeur d'une cellule
En conséquence, on ne peut pas ces lignes de code car elle
suppose que X est un tableau à 2 dimensions.
For A = 1 To UBound(X, 1)
For B = 1 To UBound(X, 2)
| UBound(X,1) me donne une erreur "Tableau attendu"
Quand tu as défini ta plage de cellules par ce code :
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
X = Rg.Value
Si la variable "Range" Rg ne représente qu'une cellule alors
X ne sera pas une variable de type tableau (colonne par y lignes)
mais représentera simplement la valeur d'une cellule
En conséquence, on ne peut pas ces lignes de code car elle
suppose que X est un tableau à 2 dimensions.
For A = 1 To UBound(X, 1)
For B = 1 To UBound(X, 2)
Si tu dois retenir une procédure, c'est celle-ci :
Si cela génère une erreur, tu me dis qu'elle est le
message d'erreur.
Cette macro utilise comme séparateur de date celui
définit dans le panneau de configuration de Windows.
Si tu as des cellules au format texte, il se peut que le
contenu de la cellule utilise un autre séparateur de date
que celui définit dans Windows. Alors, il faut adapter
la valeur de la variable "sep"
'---------------------------------------------------------
Sub test()
Dim Rg As Range, T, Sep As String
Dim X, A As Long, B As Integer
Sep = Application.International(xlDateSeparator)
With Worksheets("CopieBase")
Set Rg = .Range("H2:H" & .Range("H65536").End(xlUp).Row)
X = Rg.Value
End With
For A = 1 To UBound(X, 1)
For B = 1 To UBound(X, 2)
T = Split(X(A, B), Sep)
If Val(T(0)) <= 12 Then
X(A, B) = T(1) & Sep & T(0) & Sep & T(2)
End If
Next
Next
Rg.Clear
Rg.NumberFormat = "DD/MM/YY"
Rg.Value = X
End Sub
'--------------------------------------
Si tu dois retenir une procédure, c'est celle-ci :
Si cela génère une erreur, tu me dis qu'elle est le
message d'erreur.
Cette macro utilise comme séparateur de date celui
définit dans le panneau de configuration de Windows.
Si tu as des cellules au format texte, il se peut que le
contenu de la cellule utilise un autre séparateur de date
que celui définit dans Windows. Alors, il faut adapter
la valeur de la variable "sep"
'---------------------------------------------------------
Sub test()
Dim Rg As Range, T, Sep As String
Dim X, A As Long, B As Integer
Sep = Application.International(xlDateSeparator)
With Worksheets("CopieBase")
Set Rg = .Range("H2:H" & .Range("H65536").End(xlUp).Row)
X = Rg.Value
End With
For A = 1 To UBound(X, 1)
For B = 1 To UBound(X, 2)
T = Split(X(A, B), Sep)
If Val(T(0)) <= 12 Then
X(A, B) = T(1) & Sep & T(0) & Sep & T(2)
End If
Next
Next
Rg.Clear
Rg.NumberFormat = "DD/MM/YY"
Rg.Value = X
End Sub
'--------------------------------------
Si tu dois retenir une procédure, c'est celle-ci :
Si cela génère une erreur, tu me dis qu'elle est le
message d'erreur.
Cette macro utilise comme séparateur de date celui
définit dans le panneau de configuration de Windows.
Si tu as des cellules au format texte, il se peut que le
contenu de la cellule utilise un autre séparateur de date
que celui définit dans Windows. Alors, il faut adapter
la valeur de la variable "sep"
'---------------------------------------------------------
Sub test()
Dim Rg As Range, T, Sep As String
Dim X, A As Long, B As Integer
Sep = Application.International(xlDateSeparator)
With Worksheets("CopieBase")
Set Rg = .Range("H2:H" & .Range("H65536").End(xlUp).Row)
X = Rg.Value
End With
For A = 1 To UBound(X, 1)
For B = 1 To UBound(X, 2)
T = Split(X(A, B), Sep)
If Val(T(0)) <= 12 Then
X(A, B) = T(1) & Sep & T(0) & Sep & T(2)
End If
Next
Next
Rg.Clear
Rg.NumberFormat = "DD/MM/YY"
Rg.Value = X
End Sub
'--------------------------------------