Condition

Résolu/Fermé
alexysr Messages postés 24 Date d'inscription dimanche 21 septembre 2014 Statut Membre Dernière intervention 5 avril 2016 - Modifié par alexysr le 15/10/2014 à 15:21
alexysr Messages postés 24 Date d'inscription dimanche 21 septembre 2014 Statut Membre Dernière intervention 5 avril 2016 - 16 oct. 2014 à 16:37
Bonjour,
Comment allez-vous?

J'ai un autre petit souci, je voudrais appliqué une condition, mais je ne suis pas doué ^^
Dans la colonne D à partir de la ligne1 il y a des valeurs, et je voudrais que pour toutes les valeurs commençant par "46", sur la même ligne mais dans la colonne E, on marque "SUPP".

Et deuxieme condition, dans la colonne D toujours, si des valeurs commencent par "40", supprimer la case ainsi que la case de la même ligne colonne E (uniquement c'est 2 cases , pas toute la ligne).

Merci beaucoup.

PS: EN VBA

Alexys

2 réponses

via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
15 oct. 2014 à 15:12
Bonjour

1° question
En E1 mettre la formule : =si(gauche(D1;2)="46";"SUPP";"")

2° question
Pas possible par formule, il faut faire une macro en VBA

Cdlmnt
0
alexysr Messages postés 24 Date d'inscription dimanche 21 septembre 2014 Statut Membre Dernière intervention 5 avril 2016
15 oct. 2014 à 15:22
Bonjour via55,

Pardon j'avais pas précisé, tout ça en VBA :s
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
15 oct. 2014 à 15:25
Ok, je dois m'absenter je regarde ça ce soir
0
alexysr Messages postés 24 Date d'inscription dimanche 21 septembre 2014 Statut Membre Dernière intervention 5 avril 2016
15 oct. 2014 à 15:39
Ok merci beaucoup, je sai que ça fait du boulot
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
15 oct. 2014 à 19:07
Voilà

Ouvrir Editeur VBA (ALT F11) puis Insertion Module
copier-coller la macro suivante

Sub supp()
Dim Ligne As Long
dernligne = ActiveSheet.Columns(4).Find("*", , , , xlByColumns, xlPrevious).Row
For n = 1 To dernligne
If Left(Range("D" & n), 2) = "46" Then Range("E" & n) = "SUPP" Else If Left(Range("D" & n), 2) = "40" Then Range("D" & n) = "": Range("E" & n) = ""
Next
End Sub


Fermer l'éditeur

Acceder à la macro à partir de l'onglet Developpeur Macros ou crée un bouton et mettre dans le code le nom de la macro (supp)

Cdlmnt
0
alexysr Messages postés 24 Date d'inscription dimanche 21 septembre 2014 Statut Membre Dernière intervention 5 avril 2016
15 oct. 2014 à 19:45
Merci beacoup via55!
Je testerais demain et te diras :)
Mais déjà j'ai compris le code, donc merci!

Bonne soirée
0
alexysr Messages postés 24 Date d'inscription dimanche 21 septembre 2014 Statut Membre Dernière intervention 5 avril 2016
15 oct. 2014 à 19:57
Juste une question, peux-tu expliquer la partie :

Dim Ligne As Long
dernligne = ActiveSheet.Columns(4).Find("*", , , , xlByColumns, xlPrevious).Row
For n = 1 To dernligne


?

merci :)
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
15 oct. 2014 à 20:34
la 2eme ligne recherche le n° dernière ligne remplie en colonne 4
Ensuite on boucle de la 1ere à cette dernière ligne

Bonne soirée également
0
alexysr Messages postés 24 Date d'inscription dimanche 21 septembre 2014 Statut Membre Dernière intervention 5 avril 2016
16 oct. 2014 à 16:10
Salut via55,

J'ai essayé de l'intégrer:
Sub Macro2()
'
' Macro2 Macro
'

'
Windows("data_141015.xlsx").Activate
Worksheets("Feuil2").Activate


Dim Ligne As Long
dernligne = ActiveSheet.Columns(4).Find("*", , , , xlByColumns, xlPrevious).Row

For n = 1 To dernligne
If Left(Range("D" & n), 2) = "46*" Then Range("E" & n) = "SUPP"
Else: If Left(Range("D" & n), 2) = "40" Then Range("D" & n) = "": Range("E" & n) = ""

End If

Next

End Sub


mais il me dit qu'il y a une erreur, une idée?

merci
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
Modifié par via55 le 16/10/2014 à 16:26
Une erreur dans ma macro et deux dans la tienne !
Dans la mienne ce n'est pas DIm Ligne mais Dim dernligne qu'il faut mettre (j'avais changé le nom de la variable après mais pas dans le Dim !!)

Dans la tienne il ne faut pas d'* après 46 (Left(..,2 prend les 2 premiers caractères ) et le Else doit être sur la même ligne et sans :

Ligne correcte (en principe!) :
If Left(Range("D" & n), 2) = "46" Then Range("E" & n) = "SUPP" Else If Left(Range("D" & n), 2) = "40" Then Range("D" & n) = "": Range("E" & n) = ""

Et tu supprimes le End If

Cdlmnt
0