Aide Maccro

Résolu
joeramones -  
 joeramones -
Bonjour,
Je travail actuellement sur un tableau a 3000 lignes et 4 colonnes.

Exemple
1 T 0222 PLAFOND PLAQUE DE PLATRE SUR OSSATURE METALLIQUE
2 T 022203 OSSATURE PARALLELE AUX PLAQUES
3 T 02220303 Avec fourrures 47/50
4 O 02220303003 Plafond avec 1 plaque ép. 13 mm

Il faut que si il y a 4 chiffres dans la colonne C la colonne A indique 1 et la B T
6 chiffres A= 2 et B= T
8 chiffres A=3 et B= T
11 chiffres A=4 et B= O
Quelqu'un aurait il une petite maccro pour éviter que je me tape les 3 000 lignes une par une ?

Cordialement

3 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,
    Sub typeRef()
        Dim c As Range
        For Each c In Selection
            Select Case Len(Split(c, " ")(0))
            Case 4
                c.Offset(0, -2) = "1"
                c.Offset(0, -1) = "T"
            Case 6
                c.Offset(0, -2) = "2"
                c.Offset(0, -1) = "T"
            Case 8
                c.Offset(0, -2) = "3"
                c.Offset(0, -1) = "T"
            Case 11
                c.Offset(0, -2) = "4"
                c.Offset(0, -1) = "O"
            End Select
        Next c
    End Sub 
    Tu sélectionnes la plage à traiter et tu lances la macro.

    eric
    1
  2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    Je ne pense pas que tu ai besoin d'une macro, avec ces formules cela devrait être fonctionnel :
    en A1
    =CHOISIR(NBCAR($C1);0;0;0;1;0;2;0;3;0;0;4)
    en B1
    =CHOISIR(NBCAR($C1);0;0;0;"T";0;"T";0;"T";0;0;"O")

    Il te suffit ensuite de double cliquer sur la petite croix en bas à droite pour que les formules s'étendent sur toute la colonne utile.
    1
  3. joeramones
     
    Merci à vous deux je viens de faire en 30 secondes ce que j'aurais mis 2 jours à faire :)

    Un grand merci.
    0