Aide Maccro

Résolu/Fermé
joeramones - Modifié par joeramones le 19/02/2013 à 08:42
 joeramones - 19 févr. 2013 à 09:42
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

eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
19 févr. 2013 à 09:17
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
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 706
19 févr. 2013 à 09:19
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
Merci à vous deux je viens de faire en 30 secondes ce que j'aurais mis 2 jours à faire :)

Un grand merci.
0