Changer le format date [Résolu]

nonossov 435 Messages postés lundi 29 décembre 2014Date d'inscription 5 décembre 2017 Dernière intervention - 16 nov. 2017 à 13:32 - Dernière réponse : nonossov 435 Messages postés lundi 29 décembre 2014Date d'inscription 5 décembre 2017 Dernière intervention
- 17 nov. 2017 à 10:26
Bonjour mes amis,

Voici une macro qui fait le deplacement des colonnes.

je vouderai changer le format de la colonne A en format Date de la feuil Output.

et s'il est possible de mettre une condition pour remplir la colonne F: Si la colonne G possitive mettez la lettre "C" sinon "D".

Sub converter()
Dim sh As Worksheet
Dim ws As Worksheet
Dim a As Long
Dim b As Long

Set ws = Sheets("Input")
Set sh = Sheets("Output")

b = ws.Range("A1").End(xlDown).Row
c = sh.Range("A1").End(xlDown).Row
sh.Activate
sh.Range("A2", Cells(c, "I")).Clear
'sh.Range("A2", Cells(c, "I")).Interior.Color = RGB(255, 255, 255)
For a = 2 To b
sh.Cells(a, "C") = ws.Cells(a, "C")
sh.Cells(a, "A") = ws.Cells(a, "G")
sh.Cells(a, "E") = ws.Cells(a, "I")
sh.Cells(a, "B") = ws.Cells(a, "L")
sh.Cells(a, "G") = ws.Cells(a, "M")
sh.Cells(a, "D") = ws.Cells(a, "X")


Next
sh.Range("A2", Cells(b, "A")).NumberFormat = "DD/MM/YYYY"
End Sub


Merci infiniment



Afficher la suite 
435Messages postés lundi 29 décembre 2014Date d'inscription 5 décembre 2017 Dernière intervention

9 réponses

Répondre au sujet
jordane45 19177 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 8 décembre 2017 Dernière intervention - 16 nov. 2017 à 13:57
+3
Utile
8
Bonjour,

As tu essayé :
sh.Range("A2", Cells(b, "A")).NumberFormat = "dd/mm/yy;@"

jordane45 19177 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 8 décembre 2017 Dernière intervention > nonossov 435 Messages postés lundi 29 décembre 2014Date d'inscription 5 décembre 2017 Dernière intervention - 16 nov. 2017 à 17:48
Un truc du genre :
dim maplageC as Range

set maplageC = sh.Range("G2", Cells(b, "G"))

for each cellule IN maplageC
  If cellule.value > 0 Then 
     sh.cells(cellule.row,7).value = "C" 
  else
    sh.cells(cellule.row,7).value = "D" 
  End If

Next
nonossov 435 Messages postés lundi 29 décembre 2014Date d'inscription 5 décembre 2017 Dernière intervention - 16 nov. 2017 à 18:23
Merci infiniment Mr Jordane, j'ai essayé de faire le meme striture pour appliquer cette codition:

Si le chiffre dans la colonne G est positif je met le chiffre dans la colonne H. si le chiffre dans la colonne G est négatif il reste dans la meme cellule?? mais je n'ai pas pu réussir

Merci infiniment pour tous.
jordane45 19177 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 8 décembre 2017 Dernière intervention > nonossov 435 Messages postés lundi 29 décembre 2014Date d'inscription 5 décembre 2017 Dernière intervention - 16 nov. 2017 à 18:33
Sans voir ce que tu as codé... Impossible de te répondre
nonossov 435 Messages postés lundi 29 décembre 2014Date d'inscription 5 décembre 2017 Dernière intervention - 16 nov. 2017 à 18:34
Voila le code complet; Merci infiniment:

Sub converter()
Dim sh As Worksheet
Dim ws As Worksheet
Dim a As Long
Dim b As Long

Set ws = Sheets("Input")
Set sh = Sheets("Output")

b = ws.Range("A1").End(xlDown).Row
c = sh.Range("A1").End(xlDown).Row
sh.Activate
sh.Range("A2", Cells(c, "I")).Clear
'sh.Range("A2", Cells(c, "I")).Interior.Color = RGB(255, 255, 255)
For a = 2 To b
sh.Cells(a, "C") = ws.Cells(a, "C")
sh.Cells(a, "A") = ws.Cells(a, "G")
sh.Cells(a, "E") = ws.Cells(a, "I")
sh.Cells(a, "B") = ws.Cells(a, "L")
sh.Cells(a, "G") = ws.Cells(a, "M")
sh.Cells(a, "D") = ws.Cells(a, "X")


Next
sh.Range("A2", Cells(b, "A")).NumberFormat = "dd/mm/yyyy;@"

Dim maplageC As Range

Set maplageC = sh.Range("G2", Cells(b, "G"))

For Each cellule In maplageC
If cellule.Value > 0 Then
sh.Cells(cellule.Row, 6).Value = "C"
Else
sh.Cells(cellule.Row, 6).Value = "D"

End If


Next
End Sub
nonossov 435 Messages postés lundi 29 décembre 2014Date d'inscription 5 décembre 2017 Dernière intervention - 17 nov. 2017 à 10:26
Merci d'avance Mr,
Commenter la réponse de jordane45