Formule Excel

Bonjour,

J'aimerais trouver comment écrire une formule un peu spéciale :

Dans ma colonne B, les cases peuvent être remplies de 3 manières : soit par a, soit par b, soit vide .

Comment écrire dans la colonne A : si ds la colonne B il y a b, alors il y a b ds la colonne A , si ds la colonne B, il y a a alors ds la colonne A il y a a ; et enfin si il y a rien ds B alors il y a rien ds A.

J'ai essayé cette formule mais sans succès :

Par exemple pour A3:

=OU( SI(B3="a";"A3="A" ) ; SI(B3="b";"A3="B" );SI(B3="";"";""))

Merci d'avance de votre aide .

PS : La colonne A est préalablement remplie de valeurs..., ici inintéressante ! La colonne A n'est pas vide par défaut.

Bonsoir,

en A3

=SI(B3="a";"A";SI(B3="b";"B";""))

Amicalement

Claude

édit: J'ai dis une bêtise, çà ne peut pas marcher si la colonne A a déjà des valeurs

repose le problème avec un bout de fichier, ou alors par macro ?

Bonsoir

Pourquoi ne pas écrire en A3

=B3

Ah, oui, les valeurs existantes

Cordialement

bien sûr ! pas besoin de SI

=MAJUSCULE(B3)

Mais ... attendons la suite

Bonsoir Amadéus

Claude

Bonsoir

Avec ce Code dans un Module (champ B1:B20 à adapter)

Sub Contrôle()
For Each Cellule In Range("B1:B20")
If Cellule.Value = "a" Then
Cellule.Offset(0, -1).Value = "A"
ElseIf Cellule.Value = "b" Then
Cellule.Offset(0, -1).Value = "B"
ElseIf Cellule.Value = "" Then
Cellule.Offset(0, -1).Value = ""
End If
Next
End Sub

Cordialement

10classeur1.zip (6.75 Ko)

Bonsoir à tous,

Amadéus, n'oublie pas les déclarations de variables

ici, Dim Cellule As Range

-------- autre façon d'écrire le même code ------

Sub essai()
Dim Lg%, i%
    Lg = Cells.Find("*", , , , xlByRows, xlPrevious).Row
    For i = 1 To Lg
        Select Case Cells(i, 2)
            Case Is = "a":  Cells(i, 1) = "A"
            Case Is = "b":  Cells(i, 1) = "B"
            Case Is = "":   Cells(i, 1).ClearContents
        End Select
    Next i
End Sub

Amicalement

Claude

Rechercher des sujets similaires à "formule"