Macro Convertir Colonne et Heures changées
RechercheV1
Messages postés
6
Statut
Membre
-
RechercheV1 Messages postés 6 Statut Membre -
RechercheV1 Messages postés 6 Statut Membre -
Bonjour à tous !
Je suis en train de me triturer l'esprit et je n'arrive toujours pas à trouver de solutions malgré mes recherches sur le net.
Je suis en train de créer un fichier de stats, ils comportent différentes petites macro que j'enregistre automatiquement. Seulement y en a une qui bug et impossible de savoir pourquoi.
Dans ma colonne J et K j'ai des dates et heures : 19/05/2015 08:32
et 19/05/2015 17:47, lorsque je le fais manuellement en faisant données/convertir tout fonctionne super bien.
Seulement quand je veux enregistrer cette manipulation en maccro : la première colonne (J) il va parfaitement exécuter mais la deuxième K : impossible ou alors il me la supprime et me met une heure sous forme 05:47 au lieu de 17:47. (Oui car ce que je souhaite c'est de séparer les heures des dates). Je ne sais plus quoi faire : pouvez-vous m'aider ?
Voici la maccro qu'il enregistre :
Sub Macro19()
'
' Macro19 Macro
'
'
Columns("K:K").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("M8").Select
ActiveWindow.SmallScroll ToRight:=2
Columns("J:J").Select
Selection.TextToColumns Destination:=Range("J1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
Columns("L:L").Select
Selection.TextToColumns Destination:=Range("L1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
Range("N19").Select
End Sub
Je suis en train de me triturer l'esprit et je n'arrive toujours pas à trouver de solutions malgré mes recherches sur le net.
Je suis en train de créer un fichier de stats, ils comportent différentes petites macro que j'enregistre automatiquement. Seulement y en a une qui bug et impossible de savoir pourquoi.
Dans ma colonne J et K j'ai des dates et heures : 19/05/2015 08:32
et 19/05/2015 17:47, lorsque je le fais manuellement en faisant données/convertir tout fonctionne super bien.
Seulement quand je veux enregistrer cette manipulation en maccro : la première colonne (J) il va parfaitement exécuter mais la deuxième K : impossible ou alors il me la supprime et me met une heure sous forme 05:47 au lieu de 17:47. (Oui car ce que je souhaite c'est de séparer les heures des dates). Je ne sais plus quoi faire : pouvez-vous m'aider ?
Voici la maccro qu'il enregistre :
Sub Macro19()
'
' Macro19 Macro
'
'
Columns("K:K").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("M8").Select
ActiveWindow.SmallScroll ToRight:=2
Columns("J:J").Select
Selection.TextToColumns Destination:=Range("J1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
Columns("L:L").Select
Selection.TextToColumns Destination:=Range("L1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
Range("N19").Select
End Sub
A voir également:
- Macro Convertir Colonne et Heures changées
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Déplacer colonne excel - Guide
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Trier colonne excel - Guide
- Colonne word - Guide
3 réponses
Bonjour
Essayez ceci
Cdlt
Essayez ceci
Sub SeparerJourHeure()
Application.ScreenUpdating = False
Columns("K:K").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("K1:K" & [J100000].End(xlUp).Row).FormulaR1C1 = "=HOUR(RC[-1])"
Range("K1:K" & [J100000].End(xlUp).Row).NumberFormat = "h:mm;@"
Range("K1:K" & [J100000].End(xlUp).Row).FormulaR1C1 = "=RC[-1]-INT(RC[-1])"
Range("J1:J" & [J100000].End(xlUp).Row).NumberFormat = "m/d/yyyy"
Range("M1:M" & [L100000].End(xlUp).Row).FormulaR1C1 = "=HOUR(RC[-1])"
Range("M1:M" & [L100000].End(xlUp).Row).NumberFormat = "h:mm;@"
Range("M1:M" & [L100000].End(xlUp).Row).FormulaR1C1 = "=RC[-1]-INT(RC[-1])"
Range("L1:L" & [J100000].End(xlUp).Row).NumberFormat = "m/d/yyyy"
End Sub
Cdlt
Voilà pour les secondes
lorsque cela créer les colonnes de définir un nom ?
Est-ce bien un Nom définit par colonne que voulez-vous exactement, ou bien un titre en haut de chaque colonne en J1, K1, L1, M1 ? Quels noms vous voulez y mettre?
Je me suis aperçu dans le code que je vous ai envoyé, que dans les colonnes des dates, je masque les heures en utilisant le format date "jj/mm:yy", mais elles sont toujours présentent, cela vous gêne t-il?
cdlt
Sub SeparerJourHeure()
Application.ScreenUpdating = False
Columns("K:K").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("K1:K" & [J100000].End(xlUp).Row).FormulaR1C1 = "=HOUR(RC[-1])"
Range("K1:K" & [J100000].End(xlUp).Row).NumberFormat = "h:mm:ss;@"
Range("K1:K" & [J100000].End(xlUp).Row).FormulaR1C1 = "=RC[-1]-INT(RC[-1])"
Range("J1:J" & [J100000].End(xlUp).Row).NumberFormat = "m/d/yyyy"
Range("M1:M" & [L100000].End(xlUp).Row).FormulaR1C1 = "=HOUR(RC[-1])"
Range("M1:M" & [L100000].End(xlUp).Row).NumberFormat = "h:mm:ss;@"
Range("M1:M" & [L100000].End(xlUp).Row).FormulaR1C1 = "=RC[-1]-INT(RC[-1])"
Range("L1:L" & [J100000].End(xlUp).Row).NumberFormat = "m/d/yyyy"
End Sub
lorsque cela créer les colonnes de définir un nom ?
Est-ce bien un Nom définit par colonne que voulez-vous exactement, ou bien un titre en haut de chaque colonne en J1, K1, L1, M1 ? Quels noms vous voulez y mettre?
Je me suis aperçu dans le code que je vous ai envoyé, que dans les colonnes des dates, je masque les heures en utilisant le format date "jj/mm:yy", mais elles sont toujours présentent, cela vous gêne t-il?
cdlt
En attendant votre réponse à la question posée ci-dessus concernant le nom des colonnes à définir, voici une correction qui supprime les heures définitivement dans les colonnes J et L
A+
Sub SeparerJourHeure()
Application.ScreenUpdating = False
Columns("K:K").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("K1:K" & [J100000].End(xlUp).Row).FormulaR1C1 = "=HOUR(RC[-1])"
Range("K1:K" & [J100000].End(xlUp).Row).NumberFormat = "h:mm:ss;@"
Range("K1:K" & [J100000].End(xlUp).Row).FormulaR1C1 = "=RC[-1]-INT(RC[-1])"
Range("K1:K" & [J100000].End(xlUp).Row).Value = Range("K1:K" & [J100000].End(xlUp).Row).Value
Range("J1:J" & [J100000].End(xlUp).Row).NumberFormat = "0"
For i = 1 To [J100000].End(xlUp).Row
Cells(i, 10) = Fix(Cells(i, 10))
Next
Range("J1:J" & [J100000].End(xlUp).Row).NumberFormat = "m/d/yyyy"
Range("M1:M" & [L100000].End(xlUp).Row).FormulaR1C1 = "=HOUR(RC[-1])"
Range("M1:M" & [L100000].End(xlUp).Row).NumberFormat = "h:mm:ss;@"
Range("M1:M" & [L100000].End(xlUp).Row).FormulaR1C1 = "=RC[-1]-INT(RC[-1])"
Range("M1:M" & [J100000].End(xlUp).Row).Value = Range("M1:M" & [J100000].End(xlUp).Row).Value
Range("L1:L" & [J100000].End(xlUp).Row).NumberFormat = "0"
For i = 1 To [L100000].End(xlUp).Row
Cells(i, 12) = Fix(Cells(i, 12))
Next
Range("L1:L" & [L100000].End(xlUp).Row).NumberFormat = "m/d/yyyy"
End Sub
A+
Bonjour,
Désolée pour le temps de réponse, je viens d'essayer ce matin. Avec la macro que vous avez posté à 14h59, cela fonctionne très bien, j'ai les secondes avec ! Youpi :-)
Par contre pour la deuxième : il me marque "Erreur d'exécution '13' Incompatibilité Type" Débogage c'est la ligne : Cells(i, 10) = Fix(Cells(i, 10))
En fait, vous savez quand la macro crée les deux colonnes, elles notes #VALEUR!, sur la première ligne et j'aurai aimé qu'elle note autre chose, mais si cela est complexe, cela ne me gêne pas de la laisser comme ça :-)
HeureConnexion #VALEUR! HeureDeconnexion #VALEUR!
18/05/2015 7:24:14 18/05/2015 16:12:27
Dans l'idéal, j'aurai aimé :
HeureConnexion HeureConnexion HeureDeconnexion HeureDeconnexion
18/05/2015 7:24:14 18/05/2015 16:12:27
Désolée pour le temps de réponse, je viens d'essayer ce matin. Avec la macro que vous avez posté à 14h59, cela fonctionne très bien, j'ai les secondes avec ! Youpi :-)
Par contre pour la deuxième : il me marque "Erreur d'exécution '13' Incompatibilité Type" Débogage c'est la ligne : Cells(i, 10) = Fix(Cells(i, 10))
En fait, vous savez quand la macro crée les deux colonnes, elles notes #VALEUR!, sur la première ligne et j'aurai aimé qu'elle note autre chose, mais si cela est complexe, cela ne me gêne pas de la laisser comme ça :-)
HeureConnexion #VALEUR! HeureDeconnexion #VALEUR!
18/05/2015 7:24:14 18/05/2015 16:12:27
Dans l'idéal, j'aurai aimé :
HeureConnexion HeureConnexion HeureDeconnexion HeureDeconnexion
18/05/2015 7:24:14 18/05/2015 16:12:27
Bonjour
Corrigé avec les titres
j'ai remplacé:
HeureConnexion HeureConnexion HeureDeconnexion HeureDeconnexion
par
DateConnexion HeureConnexion DateDeconnexion HeureDeconnexion
qui me semblait plus approprié
Cdlt
Corrigé avec les titres
j'ai remplacé:
HeureConnexion HeureConnexion HeureDeconnexion HeureDeconnexion
par
DateConnexion HeureConnexion DateDeconnexion HeureDeconnexion
qui me semblait plus approprié
Sub SeparerJourHeure()
Application.ScreenUpdating = False
Columns("K:K").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("K2:K" & [J100000].End(xlUp).Row).FormulaR1C1 = "=HOUR(RC[-1])"
Range("K2:K" & [J100000].End(xlUp).Row).NumberFormat = "h:mm:ss;@"
Range("K2:K" & [J100000].End(xlUp).Row).FormulaR1C1 = "=RC[-1]-INT(RC[-1])"
Range("K2:K" & [J100000].End(xlUp).Row).Value = Range("K2:K" & [J100000].End(xlUp).Row).Value
Range("J2:J" & [J100000].End(xlUp).Row).NumberFormat = "0"
For i = 2 To [J100000].End(xlUp).Row
Cells(i, 10) = Int(Cells(i, 10))
Next
Range("J2:J" & [J100000].End(xlUp).Row).NumberFormat = "m/d/yyyy"
Range("M2:M" & [L100000].End(xlUp).Row).FormulaR1C1 = "=HOUR(RC[-1])"
Range("M2:M" & [L100000].End(xlUp).Row).NumberFormat = "h:mm:ss;@"
Range("M2:M" & [L100000].End(xlUp).Row).FormulaR1C1 = "=RC[-1]-INT(RC[-1])"
Range("M2:M" & [J100000].End(xlUp).Row).Value = Range("M2:M" & [J100000].End(xlUp).Row).Value
Range("L2:L" & [J100000].End(xlUp).Row).NumberFormat = "0"
For i = 1 To [L100000].End(xlUp).Row
Cells(i, 12) = Int(Cells(i, 12))
Next
Range("L2:L" & [L100000].End(xlUp).Row).NumberFormat = "m/d/yyyy"
Range("J1:M1") = Array("DateConnexion", "HeureConnexion", "DateDeconnexion", "HeureDeconnexion")
End Sub
Cdlt
Serait-il possible d'avoir les secondes avec ?
Et si c'est possible (ce n'est pas gênant si pas possible) ; lorsque cela créer les colonnes de définir un nom ?