Excel - extraire année d'une cellule texte

Résolu
Kirilov Messages postés 104 Date d'inscription   Statut Membre Dernière intervention   -  
Kirilov Messages postés 104 Date d'inscription   Statut Membre Dernière intervention   -
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 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   1
 
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   Statut Contributeur Dernière intervention   953
 
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   Statut Membre Dernière intervention   1
 
Mytå & CCM81 Merci. Question résolue.
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
bonjour,
=Si(ET(A1>=1900;A1<2000);A1;"")
-1