Remplir une colonne conditionnellement à une autre

Bonjour!!

Voilà mon problème, j'ai une colonne comportant différents chiffres et je voulais parcourir cette colonne et en fonction du premier chiffre inscrire dans une autre colonne le résultat.

Plus précisemment:

  • Si mon premier caractère commence par 4 alors dans B2 on a A
  • Si mon premier caractère commence par 5 alors dans B2 on a B

Voilà ce que j'ai réussi a faire pour le moment:

Sub test()

Dim i As Range

For Each i In Range("A3", Range("A3").End(xlDown)).Cells

V = Left(i, 1)

If V = "4" Then

Cells(2,2).Value = "A"

ElseIf V = "5" Then

Cells(2,2).Value = "B"

End If

Next i

End Sub

Je n'arrive pas a faire en sorte que les résultats s'affichent correctement face à chaque ligne.

Je ne sais pas si mon problème est clair...

Merci d'avance

Bonsoir,

sans VBA vous pouvez mettre en colonne B cette formule : =SI(GAUCHE(A1;1)="4";"A";SI(GAUCHE(A1;1)="5";"B";""))

à tirer vers le bas, sinon en VBA votre code comporte quelques erreurs...

Option Explicit

Sub test()
    Dim Cel As Range, V As String
    For Each Cel In Range("A3", Range("A3").End(xlDown)).Cells
        V = Left(Cel.Value, 1)
        If V = "4" Then
            Cells(Cel.Row, 2).Value = "A"
        ElseIf V = "5" Then
            Cells(Cel.Row, 2).Value = "B"
        End If
    Next
End Sub

En fait vous avez oubliez de rendre le numéro de ligne variable, du coup tout se retrouvait en ligne 2 colonne 2...

@ bientôt

LouReeD

Exact!!

Merci beaucoup

Merci @ vous pour vos remerciements et bonne soirée !

@ bientôt

LouReeD

Bonsoir,

je propose ce code VBA (à tester) :

Option Explicit

Sub Essai()
  Dim dlig&, lig&, v As Byte
  dlig = Cells(Rows.Count, 1).End(xlUp).Row
  Application.ScreenUpdating = 0
  For lig = 3 To dlig
    v = Val(Left$(Cells(lig, 1), 1))
    If v = 4 Or v = 5 Then Cells(lig, 2) = Chr$(61 + v)
  Next lig
End Sub

dhany

Merci dhany !

@ bientôt

LouReeD

Rechercher des sujets similaires à "remplir colonne conditionnellement"