Modification de 1430 Cellules dans Excel

Roye20 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   -
Salut a tous,

Je Cherche une Facon de Faire pour Modifier des informations dans 1430 Cellules...

Je m'Explique..

J'ai par chaque Ligne les Informations suivantes:
Chaque Ligne d'information est dans une cellule

2,Carter Camp,,8,USA,1988-07-06,173,69,True,False,False,False,1,True,False,False,

3,Nate Prosser,,7,USA,1986-05-07,195,74,False,False,False,True,1,True,False,

4,David Warsofsky,,2,USA,1990-05-30,170,69,False,False,False,True

Apres la 5ieme Virgule, ou il ya une date,j'aimerais modifier la date pour le 31 Juillet, mais garder l'annee deja inscris,.. Donc, sa devrait ressembler a ceci:

2,Carter Camp,,8,USA,1988-07-31,173,69,True,False,False,False,1,True,False,False,

3,Nate Prosser,,7,USA,1986-07-31,195,74,False,False,False,True,1,True,False,

4,David Warsofsky,,2,USA,1990-07-31,170,69,False,False,False,True

Un amis m'a dit d'utiliser le VB Editor.. mais je n'ai aucune idee qu'est ce que je faire comme commande...

Si quelqu'un a une idee.... Merci

2 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    bonsoir

    si la date a modifier est bien située après la 5° virgule une macro à mettre dans un module général (Alt-F11 puis Insertion/module)
    il doit y avoir plus rapide, mais pour 1500 cellules, ça prend moins d'une seconde

    Public Sub MAJDate()   
    Dim c As Range   
    Dim s As String, r As Long, nbv As Long, rr As Long   
    For Each c In Selection   
      s = c.Value   
      If s <> "" Then   
        ' r = rang de la 5° virgule  
        r = 1: rr = 1   
        nbv = 0   
        Do   
          rr = InStr(r + 1, s, ",")   
          nbv = nbv + 1   
          r = rr   
        Loop Until nbv = 5   
      End If   
      ' r = rang du mois-jour   
      r = r + 6   
      s = Left(s, r - 1) & "07-31" & Right(s, Len(s) - r - 4)   
      c.Value = s   
    Next c   
    End Sub

    Pour utiliser, sélectionner la plage à traiter puis exécuter la macro

    bonne suite
    0
  2. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    Bonjour Roye20.

    Comme nous ne sommes pas en Allemagne, ce n'est pas la peine de mettre une majuscule au début de chaque nom ...

    Pour résoudre ton problème en un dixième de seconde, tu sélectionnes ta colonne, tu fais ctrl+H, tu saisis
    -??,
    dans la fenêtre "Rechercher" et
    -31,
    dans la fenêtre "Remplacer par"
    et tu valides ...
    0