Afficher 2 variables en format heure dans la même cellule??

Afficher 2 variables en format heure dans la même cellule?? - VB/VBA/VBS - Programmation

Marsh Posté le 27-06-2011 à 10:03:32    

Bonjour,
Je dois retraiter une feuille de données excel et surtout l'automatiser!
Donc j'utilie le VBA mais en vain...
 
Voilà mon pb:  :??:  
J'ai 6 colonnes qui représentent des horaires de livraisons des magasins du lundi au samedi. Ces colonnes peuvent être toutes remplies, ou que quelques jours dans la semaine, les résultats sont stockés dans des variables (rep1, rep2 et rep3) que je souhaite faire afficher ensuite selon la règle:
  => si identiques: renvoyer le délai
  => si 1/2 différent: le delai répété + le problématique1 + le preoblématique 3
Le code est le suivant mais les heures se transforment en format décimal et ne gardent pas leur format d'heure...

Code :
  1. Public Sub synthese_heure()
  2. Dim x As Integer
  3. Dim y As Integer
  4. Dim c As Integer
  5. Columns("K" ).Select
  6. selection.ClearContents
  7. Range("K1" ) = "horaires"
  8. x = Range("A65536" ).End(xlUp).Row
  9.     For y = x To 2 Step -1
  10.     rep = Empty
  11.     rep2 = Empty
  12.     rep3 = Empty
  13.         For c = 42 To 47
  14.             donnée = Cells(y, c)
  15.             If donnée <> "" Then
  16.                 If IsEmpty(rep) Then
  17.                     rep = donnée
  18.                 ElseIf donnée = rep Then
  19.                     rep = rep
  20.                 ElseIf donnée <> rep Then
  21.                     rep2 = donnée
  22.                 ElseIf donnée <> rep2 Then
  23.                     rep3 = donnée
  24.                 Else: End If
  25.             Else: End If
  26.         Next c
  27.         If IsEmpty(rep2) Then
  28.             Cells(y, 48) = rep
  29.         ElseIf IsEmpty(rep3) Then
  30.             Cells(y, 49) = rep2
  31.         Else
  32.             Cells(y, 50) = rep3
  33.         End If
  34.     Next y
  35. Columns("K:K" ).Select
  36. selection.NumberFormat = "h:mm;@"
  37. End Sub


Suis preneuse de toutes solutions...
Merci de votre lecture, A bientôt  :hello:

Reply

Marsh Posté le 27-06-2011 à 10:03:32   

Reply

Marsh Posté le 27-06-2011 à 10:19:03    

Après re-travail le code est le suivant:

Code :
  1. Public Sub synthese_heure()
  2. Dim x As Integer
  3. Dim y As Integer
  4. Dim c As Integer
  5. Columns("K" ).Select
  6. selection.ClearContents
  7. Range("K1" ) = "horaires"
  8. x = Range("A65536" ).End(xlUp).Row
  9.     For y = x To 2 Step -1
  10.     rep = Empty
  11.     rep2 = Empty
  12.     rep3 = Empty
  13.         For c = 42 To 47
  14.             donnée = Cells(y, c)
  15.             If donnée <> "" Then
  16.                 If IsEmpty(rep) Then
  17.                     rep = donnée
  18.                 ElseIf donnée = rep Then
  19.                     rep = rep
  20.                 ElseIf donnée <> rep Then
  21.                     rep2 = donnée
  22.                 ElseIf donnée <> rep2 Then
  23.                     rep3 = donnée
  24.                 Else: End If
  25.             Else: End If
  26.         Next c
  27.         If IsEmpty(rep2) Then
  28.             Cells(y, 11) = rep
  29.         ElseIf IsEmpty(rep3) Then
  30.             Cells(y, 11) = (rep & " - " & rep2)
  31.         Else
  32.             Cells(y, 11) = (rep & " - " & rep2 & " - " & rep3)
  33.         End If
  34.     Next y
  35. Columns("K:K" ).Select
  36. selection.NumberFormat = "h:mm;@"
  37. End Sub

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed