Créer une nouvelle colonne grâce à une condition

Fermé
diegodieguito Messages postés 3 Date d'inscription lundi 30 juin 2014 Statut Membre Dernière intervention 2 juillet 2014 - Modifié par diegodieguito le 1/07/2014 à 09:55
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 2 juil. 2014 à 18:27
Bonjour,

Je souhaiterais créer une nouvelle colonne à partir d'une autre.
Sur la base d'un =si(cellA=10000;cellb=5000);si(... ect)
Il faudrait que si la condition est rempliele chiffre se mette en face.

J'avais pensé à une macro dans ce style: (mais bon évidemment ça ne marche pas

Sub test()
On Error Resume Next

Application.ScreenUpdating = False
With Worksheets("feuil1")
If .Range("A2:A4000") = "1000" Then
.Range("A2") = 84
ElseIf .Range("A2:A4000") = "2777" Then
.Range("A2") = 84
Else
'pour autre test: ici sortie
Exit Sub

End If
End With

Application.ScreenUpdating = True
End Sub

Merci d'avance pour votre aide!
A voir également:

6 réponses

skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
1 juil. 2014 à 15:55
Bonjour

Je ne vois pas ou tu crée une nouvelle colonne dans ton code.

Et je ne vois pas ou tu va chercher le 1000 et le 2777

Merci
0
diegodieguito Messages postés 3 Date d'inscription lundi 30 juin 2014 Statut Membre Dernière intervention 2 juillet 2014
1 juil. 2014 à 17:00
Bonjour ,

En fait je veux créer une nouvelle colonne à partir d'une autre (celle qui contient tous les 1000 2777 et ect...) pour les remplacer par d'autres nombres selon des conditions spécifiques à chaque nombre de la première colonne.

Merci à toi d'avance pour ton aide
0
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
Modifié par skk201 le 2/07/2014 à 08:36
C'est très complexe... Vous avez une condition par chiffre ?

Dans ce cas le code :

Select Case Cells(1,1) 'Objet à controler, par exemple cellule
Case 20 'Dans le cas ou la cellule =20
'Code en cas de 20
Case "Banane" ' Dans le cas ou la cellule = Banane
'Code en cas de "Banane"
Else ' Autres
'Code dans d'autres cas.
End Select


Pour plus de détails : https://docs.microsoft.com/fr-fr/dotnet/visual-basic/language-reference/statements/select-case-statement
0
diegodieguito Messages postés 3 Date d'inscription lundi 30 juin 2014 Statut Membre Dernière intervention 2 juillet 2014
2 juil. 2014 à 10:16
Oui exact j'ai des conditions par chiffre ( une bonne 50 aine.... )

Ton code est valable si j'ai une seul cellule à tester? je vais regarder ton lien.

Merci beaucoup!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
Modifié par skk201 le 2/07/2014 à 12:23
Oui tu peux tester tout ce que tu veux. Un cellule, une variable, un objet ...

Mais si tu as une bonne 50taine de "Case" c'est un peu complex de s'y retrouver. Est-ce que tu n'as pas une logique qui revient dans ces "Case" ?

Tu as aussi la possibilité de faire ça :

Select Case Cells(1,1) 'Objet à controler, par exemple cellule
Case 20, 21, 22, 23 'Dans le cas ou la cellule =20 ou 21 ou 22 ou 23
'Code en cas de 20 à 23
End Select
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
Modifié par Polux31 le 2/07/2014 à 18:27
Bonjour,

Une façon de faire:

Sub test()
Dim adCell As Range

With Worksheets("feuil1")
    Set adCell = .Range("A2:A4000").Find("1000")
    
    If Not adCell Is Nothing Then
        .Range("A2").Value = 84
    Else
        Set adCell = Nothing
        Set adCell = .Range("A2:A4000").Find("2700")
        If Not adCell Is Nothing Then
            .Range("A2").Value = 84
        End If
    End If
End With

Set adCell = Nothing

End Sub 


«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
0