• Initiateur de la discussion Initiateur de la discussion olive323
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

olive323

XLDnaute Occasionnel
Bonjour à tous,


Je souhaiterais inverser une date,

20110420 EN 20/04/2011

Est ce l'un d'entre vous aurait une idée???

Une autre question
Sur le fichier joint, j'extrais des données par le biais d'une macro, dans cette extraction il y a des cellules vides.
Quand je fais la formule NBVAL le resultat tient compte des cellulles vides.
Dans le fichier ci joint le resultat devrait etre 9 et ca m'annonce 17



Cordialement

olive323
 

Pièces jointes

Re : Inverser une date

Bonjour,

Deux solutions :


- par formule :

Code:
=TEXTE(A1;"0000""-""00""-""00")*1


- avec la fonction Convertir d'Excel :

sélectionner la colonne contenant tes données, puis : Données - Convertir - Largeur fixe - Suivant - Suivant - Cocher : Date et sélectionner AMJ - et Terminer

@+
 
Re : Inverser une date

ce qui ralentirait le moins , si tu peux STP l'integrer dans la macro? Moi j'en suis pas capable.

Sub toto_6()
Dim f, c, n, l, v
With Sheets("Feuil1")
f = .Cells(.Rows.Count, 5).End(xlUp).Row 'à chaque changement de la colonne 5'
c = 2 'toutes les 2 colonnes'
n = 2 'à partir de la 2ème ligne'
Do While n <= f
v = .Cells(n, 5)
l = 4 'reporte les données à partir de la ligne 4'
Do While .Cells(n, 5).Value = v 'à chaque changement de la colonne 5'
Sheets("Feuil2").Cells(l, c).Value = v
Sheets("Feuil2").Cells(l, c - 1).Value = .Cells(n, 6) 'colonne reporté'
l = l + 1
n = n + 1
Loop

c = c + 2 'reporté toutes les 2 colonnes'
Loop
End With
End Sub
 
Re : Inverser une date

Bonjour Olive323,

Pour la date, si elle est en A1 :
Code:
=DATE(GAUCHE(A1;4);STXT(A1;5;2);DROITE(A1;2))

Pour la formule dans ton classeur, je ne sais pas trop ce que contiennent tes cellules apparemment vides mais dans le doute, essaie cete formule :
Code:
=NB.SI(A2:A4998;"")

A+
 
Re : Inverser une date

Re, Bonjour Tibo, Bonjour Fred0o

Désolé de m'amuser comme un gamin ( à mon age pppffff )


EDITION : Maintenant quatre en un
(j'ai ajouté la solution de Tibo 😉 )
VB:
Sub On_Passe_Le_Temps_CommeOnPeut_LeWeekEND()
Dim idees

idees = _
InputBox("Choisir 1 solution parmi 4 pour l'inversion" & vbLf & vbLf & _
"Répondre 1, 2 3 ou 4" & vbLf & vbLf & vbTab & _
"Choix par défaut : 3", "XLD INVERSATOR", 3)

[B1] = Empty

Select Case idees
Case 1
Range("A1") = "20110420"
Range("B1").FormulaR1C1 = _
        "=RIGHT(RC[-1],2)&""/""&MID(RC[-1],5,2)&""/""&LEFT(RC[-1],4)*1"
Case 2 'Fred0o avait la même formule que moi donc on reste à 4 solutions ;-)
Range("A1") = "20110420"
Range("B1").FormulaR1C1 = _
        "=DATE(LEFT(RC[-1],4),MID(RC[-1],5,2),RIGHT(RC[-1],2))"
Case 3
Columns("B:B").Delete Shift:=xlToLeft
Range("A1") = "20110420"
Range("A1").TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 5), TrailingMinusNumbers:=True
        
Case 4 'Tibo
Range("A1") = "20110420"
Range("B1").FormulaR1C1 = "=TEXT(RC[-1],""0000""""-""""00""""-""""00"")*1"
End Select
 
Dernière édition:
Re : Inverser une date

Merci à tous pour ces reponses
Pour la date en formule ca fonctionne parfaitement
Pour le NBsi fredo ca marche pas

La macro doit coller une valeur vide parce que quand je selection les cellules et que je suppr le NBVAL fonctionne !!!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
11
Affichages
664
Retour