Excel_ VBA_Condition

Bonsoir,

J'ai un niveau débutant sur excel, j'apprend à le découvrir de jour en jour.

je voudrais copier les 3 Premiers chiffres dans la colonne E et ( les deux derniers lettre, si ils sont par exemple "F1" donc dans la même case doit être un "C", (la traduction se faite dans la cas F )

voire l'exemple .

Merci d'avance pour votre aiguillage et votre aide

test11

Bonjour Ashref

Pour ce qui concerne le début; il te suffit de faire

=GAUCHE(E2;3)

Pour ce qui est la dernière lettre, il te faut un tableau de correspondance qui serait en I2:Jx

Ce qui pourrait te donner

=GAUCHE(E2;3)&RECHERCHEV(DROITE(E2;2);I$2:J$5;2;FAUX)

Voir le fichier

Hallo

Merci bien pour votre réponse,

je peux écrire cette formule directement dans Excel c'est vrais ? mais je dois utiliser la programmation VBA et si je clique sur Démarrer la traduction de Code se faite Automatique

Ici mon Exemple Excel

Ici mon Exemple auf Excel

Bonjour Ashref,

Ton Excel est-il en allemand ? Si oui, c'est peut-être effectivement difficile de reporter ces formules en allemand si tu ne les connais pas.

J'ai donc intégré la formule de BrunoM45, qui fonctionne parfaitement, dans ton fichier.

J'ai rajouté un test qui laisse la cellule vide si le code qui est juste à gauche n'est pas rempli, et je l'ai étirée un peu vers le bas pour que tu aies quelques lignes d'avance.

Bonjour ,

J'ai téléchargé mon fichier Excel avec VBA ici

J'ai écrit la solution VBA et fonctionne comme il se doit , mais le problème n'est maintenant qu'à l'exception: si les 3 premiers lettres sont "XB1" donc la traduction doit être toujours XB1G sans prendre en compte les 2 derniers lettres

quelqu'un peut-il m'aider s'il vous plaît?

merci d'avance

Pourquoi veux-tu obligatoirement passer par du VBA ?

wenn ich alles verstanden habe :

Option Explicit

Public Sub Translate()

    Dim lngRow As Long, ialngIndex As Long
    Dim objCollection As Collection
    Dim avntArray1 As Variant, avntArray2 As Variant
    Dim sn As Collection

    avntArray1 = Array("F1", "K0", "M0", "F2", "K1", "M1", "N1", "K2", "H1")
    avntArray2 = Array("C", "M", "A", "U", "W", "S", "V", "Q", "G")

    Set objCollection = New Collection

    For ialngIndex = LBound(avntArray1) To UBound(avntArray1)

        Call objCollection.Add(Item:=avntArray2(ialngIndex), Key:=avntArray1(ialngIndex))

    Next

    For lngRow = 2 To Cells(Rows.Count, 5).End(xlUp).Row
    If Left$(Cells(lngRow, 5).Value, 3) = "XB1" Then
    Cells(lngRow, 6).Value = "XB1G"
    Else:
        Cells(lngRow, 6).Value = Left$(Cells(lngRow, 5).Value, 3) & _
            objCollection.Item(Index:=Right$(Cells(lngRow, 5).Value, 2))
    End If
    Next

    Set objCollection = Nothing

End Sub

Guten Morgen ,

merci beaucoup pour votre aide

c'est exactement ce que j'ai besoin et cela a aussi fonctionné pour les autres exemples

Rechercher des sujets similaires à "vba condition"