Condition
Résolu
alexysr
Messages postés
25
Statut
Membre
-
alexysr Messages postés 25 Statut Membre -
alexysr Messages postés 25 Statut Membre -
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
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
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
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
Voilà
Ouvrir Editeur VBA (ALT F11) puis Insertion Module
copier-coller la macro suivante
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
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
Salut via55,
J'ai essayé de l'intégrer:
mais il me dit qu'il y a une erreur, une idée?
merci
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
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
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
Pardon j'avais pas précisé, tout ça en VBA :s