XL 2010 VBA Convertir des données avec une boucle

jlbcall

XLDnaute Occasionnel
Bonjour à toutes et à tous

Je souhaiterais convertir des données d'une colonne en divisant la valeur des cellules qui ne sont pas vide par 1440 pour obtenir des heures en minutes.
Colonne A2 à la dernière ligne de cette colonne (qui peut variée)
A2 =31 doit devenir 31/1400 = 0.0215278 qui transformé en Format Hrs /minute deviens 00:31:00
La Valeur de la formule doit devenir la valeur pour supprimer la formule
Cette boucle doit se répéter sur 2 autres colonnes
C2 et D2

La boucle doit donc faire l'ensemble des cellules prends la valeur qu'elle contient divise par 1440 met le format hrs/min et copie la formule en value.

Voir fichier Exemple.

Merci bonne journée
 

Pièces jointes

  • Classeur1.xlsx
    997.9 KB · Affichages: 18

Lolote83

XLDnaute Barbatruc
Salut JLBCALL,
Si j'ai bien compris la consigne, voici une petite macro (faite uniquement pour la colonne A)
Code:
Sub Transforme()
  '------------------------------------------ Pour Colonne A
  xDerLig = Range("A65000").End(xlUp).Row
  For Each xCell In Range("A2:A" & xDerLig)
  xResult = Format(xCell.Value / 1440, "hh:mm:ss")
  xCell.Offset(0, 12).Value = xResult  'inscription du résultat en colonne M donc décalage de 12 colonnes
  Next xCell
End Sub
@+ Lolote83
 

vgendron

XLDnaute Barbatruc
Hello

pour la colonne A
je te laisse adapter pour les autres

VB:
Sub convertir()
Dim tablo() As Variant

With ActiveSheet
    fin = .Range("A" & .Rows.Count).End(xlUp).Row
    tablo = .Range("A2:A" & fin).Value
End With
For i = LBound(tablo, 1) To UBound(tablo, 1)
    tablo(i, 1) = Format(tablo(i, 1) / 1440, "hh:mm:ss")
Next i
Range("M2:M" & fin) = tablo
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87