ATTRIBUER UN CODE service EN FONCTION DE LA TERMINAISON DE LA CELLULE

  • Initiateur de la discussion Initiateur de la discussion urbanito1
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

urbanito1

XLDnaute Occasionnel
bonjour le forum

j'ai un listing de 150000 lignes
je souhaite faire un classement en fonction des 4 ou 2 derniers chiffres de chaque cellule
je n'y arrive pas

merci pour l'aide
petit fichier joint

urbanito1
 

Pièces jointes

Re : ATTRIBUER UN CODE service EN FONCTION DE LA TERMINAISON DE LA CELLULE

Bonjour à tous,

par formule, cela donne,
Code:
=SI(DROITE(A2;2)="02";"Type A";INDEX($G$9:$G$24;EQUIV(DROITE(A2;5);$F$9:$F$24;0)))

mais vu le nombre de ligne un code VBA serait préférable

JHA
 
Re : ATTRIBUER UN CODE service EN FONCTION DE LA TERMINAISON DE LA CELLULE

Salut,

quand tu définis ton type N: est ce que la liste donnée est exhaustive? ou tu peux aussi avoir 80-01 90-01 100-01....... ?
idem pour type C

Edit: salut JHA, Misange.
bon. je crois que la réponse a déjà été donnée ;-)
 
Re : ATTRIBUER UN CODE service EN FONCTION DE LA TERMINAISON DE LA CELLULE

Le forum

JHA, Misange merci pour les formules

je viens de tester JHA ok ( et j'ai pigé la formule)
misange test ok
j'aurais pas pu trouver seul
vgendron: tu as raison j'ai pas l'impression d'avoir la liste exhaustive

je vérifie et reviens sur le fil
merci
urbanito1
 
Re : ATTRIBUER UN CODE service EN FONCTION DE LA TERMINAISON DE LA CELLULE

Bonjour

Si les repères sont bien comme indiqués dans l'exemple, on peux faire une liste de correspondance en feuille 2 et utiliser une macro:
VB:
Private Sub CommandButton1_Click()
Dim D As Object, T As Variant, C As Variant, Tmp As Variant
Dim I&
Set D = CreateObject("Scripting.dictionary")

With Sheets("Feuil2")
    For I = 1 To .Cells(.Rows.Count, 1).End(3).Row
        D(.Cells(I, 1)) = .Cells(I, 2)
    Next I
End With

With Sheets("Feuil1")
    T = .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(3).Offset(0, 1))
    For I = LBound(T, 1) To UBound(T, 1)
        Tmp = Split(T(I, 1), "/")
        For Each C In D.Keys
            If InStr(Tmp(1), C) > 0 Then
                T(I, 2) = D(C)
                Exit For
            End If
        Next C
    Next I
    .Cells(2, 5).Resize(UBound(T, 1), 2) = T
End With

End Sub

Cordialement
 

Pièces jointes

Re : ATTRIBUER UN CODE service EN FONCTION DE LA TERMINAISON DE LA CELLULE

bonjour le forum
misange,vgendron, jha
macro de efgé extrra
j'ai essayé de comprendre

juste une question :

dans la macro efgé

Next I
.Cells(2, 5).Resize(UBound(T, 1), 2) = T

si je veux juste modifier la colonne : = Cells(2,12)?
rien d'autre à changer ?

merci
urbanito1
 

Pièces jointes

Re : ATTRIBUER UN CODE service EN FONCTION DE LA TERMINAISON DE LA CELLULE

Bonjour à tous :
si je veux juste modifier la colonne : = Cells(2,12)?
rien d'autre à changer ?

Non, rien d'autre à changer 😀

Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour