Excel - extraire année d'une cellule texte

Résolu/Fermé
Kirilov Messages postés 104 Date d'inscription dimanche 15 mars 2009 Statut Membre Dernière intervention 26 janvier 2022 - Modifié par Kirilov le 10/10/2011 à 14:08
Kirilov Messages postés 104 Date d'inscription dimanche 15 mars 2009 Statut Membre Dernière intervention 26 janvier 2022 - 10 oct. 2011 à 14:08
Bonjour,

Question insoluble pour moi...
Je travaille sur un tableur qui me sert de base pour des légendes d'images. J'ai une colonne (disons « A ») dans laquelle se trouve ma légende et en colonne « B » j'aimerai indiquer l'année.
En clair, j'essaie d'écrire une formule qui dirait Si la cellule A1 contient un nombre entre1900 et 2000 alors écrire ce nombre dans la cellule A2.

Merci de votre aide,
Cordialement,
A voir également:

2 réponses

ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 10/10/2011 à 10:14
bonjour

sans maco je ne vois pas
avec macro à copier dans un module (modifier les constantes)

Option Explicit 

Const nomF = "Feuil1" 
Const co As String = "A" 
Const lideb As Byte = 1 

Sub ExtraitAnnee() 
Dim a 
Dim c As String 
Dim ranga As Long 
Dim li As Long, lifin As Long 
' derniere ligne 
  lifin = Sheets(nomF).Cells(65536, co).End(xlUp).Row 
' on y va 
  With Sheets(nomF) 
    For li = lideb To lifin 
      c = .Cells(li, co).Value 
      For ranga = 1 To Len(c) - 3 
        a = Mid(c, ranga, 4) 
        If IsNumeric(a) Then 
          If a >= 1900 And a <= 2000 Then 
            .Cells(li, co).Offset(0, 1).Value = a 
          End If 
        End If 
      Next ranga 
    Next li 
  End With 
End Sub
bonne suite
1
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 10/10/2011 à 10:13
salut michel

j'ai peut être mal lu, mais je pense que la colonne A contient une légende du genre
Sur la plage 17 avril 1909 à Nice.jpg

et sans macro, je ne vois pas

bonne journée
0
Kirilov Messages postés 104 Date d'inscription dimanche 15 mars 2009 Statut Membre Dernière intervention 26 janvier 2022 1
10 oct. 2011 à 10:20
Oui, c'est à peur près ça : "Paul et Virginie frigorifiés à la plage le 17 octobre 1912 à Nice."
Je teste les deux solutions dans la journée et vous dis.
Merci de vos réponses Michel et CCM81.
0
Kirilov Messages postés 104 Date d'inscription dimanche 15 mars 2009 Statut Membre Dernière intervention 26 janvier 2022 1
10 oct. 2011 à 13:07
La macro marche à merveille ! Merci !
Une modification serait-il possible (je ne sais pas que ce que dois modifier dans la macro) : mes données sources sont en colonne "D" et j'aimerai que le résultat ne soit pas dans la colonne suivante ("E" donc) mais dans la colonne de mon choix, "H" en l'occurence. C'est possible ? Merci.
0
Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 942
10 oct. 2011 à 13:18
Salut le forum

Données source en D
Const co As String = "D"

Ecriture en H (4 colonnes à droite de D)
.Cells(li, co).Offset(0, 4).Value = a

Mytå
0
Kirilov Messages postés 104 Date d'inscription dimanche 15 mars 2009 Statut Membre Dernière intervention 26 janvier 2022 1
10 oct. 2011 à 14:08
Mytå & CCM81 Merci. Question résolue.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
10 oct. 2011 à 10:00
bonjour,
=Si(ET(A1>=1900;A1<2000);A1;"")
-1