Menu

VBA Excel 2013 : Selectionner les cellules contenant "unedonnée" [Fermé]

RLARCO 1 Messages postés jeudi 1 décembre 2016Date d'inscription 1 décembre 2016 Dernière intervention - 1 déc. 2016 à 17:03 - Dernière réponse : michel_m 15212 Messages postés lundi 12 septembre 2005Date d'inscriptionContributeurStatut 22 avril 2018 Dernière intervention
- 19 déc. 2016 à 15:40
Bonjour,

Je suis débutante en macro,
J'écris une macro qui doit selectionner dans la colonne A1 toutes les cellules contenant la valeur 410 pour les renommer en "FIN"
Voilà où j'en suis mais ça ne fonctionne pas :

Sheets("feuille1").Select
For LIGNE = 1 To Range("A1").End(xlDown).Row
cel = Find(what:="410").Select
ActiveCell.FormulaR1C1 = "FIN


Next LIGNE
End Sub


J'ai également essayer avec le filtre, mais il y a tellement de données que la macro ne comprend pas

Quelqu'un peut m'aider ?

MERCI
Afficher la suite 

7 réponses

ccm81 8335 Messages postés lundi 18 octobre 2010Date d'inscription 20 avril 2018 Dernière intervention - 1 déc. 2016 à 17:34
0
Utile
1
Bonjour

J'écris une macro qui doit selectionner dans la colonne A1 toutes les cellules contenant la valeur 410 pour les renommer en "FIN"
que veux tu dire par renommer ?

Cdlmnt
Bonjour,

Dans la colonne A il y a une liste de nombre comme "410258,410898,434256,434789,.." (a peu près 1000lignes comme ça et cela varie)
.Je voudrais lui dire : Selectionne dans la colonne A toutes les cellules contenant "410" change leurs valeurs par le texte "FIN"

Merci,
ccm81 8335 Messages postés lundi 18 octobre 2010Date d'inscription 20 avril 2018 Dernière intervention - 16 déc. 2016 à 12:07
0
Utile
1
Bonjour

Essaies ceci

Sub ok()
Dim ligne As Long, lifin As Long
With Sheets("feuille1")
lifin = .Range("A" & Rows.Count).End(xlDown).Row
For ligne = 1 To lifin
If InStr(1, .Range("A" & ligne).Value, "410") > 0 Then .Range("A" & ligne).Value = "FIN"
Next ligne
End With
End Sub

Cdlmnt
eriiic 21537 Messages postés mardi 11 septembre 2007Date d'inscriptionContributeurStatut 21 avril 2018 Dernière intervention - 16 déc. 2016 à 13:00
Bonjour à tous,

ccm, elle a dit "contient" mais je me demande si elle ne pensait pas "commence par" (?)
eric
ccm81 8335 Messages postés lundi 18 octobre 2010Date d'inscription 20 avril 2018 Dernière intervention - 16 déc. 2016 à 14:34
0
Utile
1
Salut Eric

Ah, l'interprétation, c'est ce qui fait toute la différence
Donc si ...
Sub ok2()
Dim ligne As Long, lifin As Long
With Sheets("feuille1")
lifin = .Range("A" & Rows.Count).End(xlDown).Row
For ligne = 1 To lifin
If Left(.Range("A" & ligne).Value, 3) = "410" Then .Range("A" & ligne).Value = "FIN"
Next ligne
End With
End Sub

Cdlmnt
Merci beaucoup pour vos réponses,

J'était entrain d'essayer avec :

Sub Macro1()
Sheets("Feuille1").Select
Columns("A:A").Select
Selection.Replace What:="410", Replacement:="FIN.", _
SearchOrder:=xlByColumns, MatchCase:=True, SearchFormat:=True, _
ReplaceFormat:=True
End Sub


Mais ça me donne "FIN1" "FIN2" "FIN3"....


J'ai essayer avec cette macro, ça marche, mais j'ai plusieurs modifs à faire ; remplacer 434 par "AVENIR" et remplacer 460 par "ENCOURS".. pour ce faire est-il possible de me faire la traduction de la macro pour que je puisse la comprendre (encore une débutante...) et rajouter les conditions ennoncées,

Encore merci,
Cordialement
michel_m 15212 Messages postés lundi 12 septembre 2005Date d'inscriptionContributeurStatut 22 avril 2018 Dernière intervention - 19 déc. 2016 à 15:40
0
Utile
Bonjour RLARCO,

Bonjour les Chefs CCM81, Eric,
ca faisait longtemps que je n'avais eu l'honneur de vous croiser :o)


Option Explicit
Option Base 1

Sub xxx()
Dim Derlig As Long, T_in, T_out, Cptr As Long

Application.ScreenUpdating = False

With Sheets(1)
Derlig = Columns("A").Find(what:="*", searchdirection:=xlPrevious).Row
T_in = Range("A1:A" & Derlig)
ReDim T_out(UBound(T_in), 1)

For Cptr = 1 To UBound(T_in)
If T_in(Cptr, 1) Like "*" & "410" & "*" Then T_out(Cptr, 1) = "FIN"
If T_in(Cptr, 1) Like "*" & "434" & "*" Then T_out(Cptr, 1) = "AVENIR"
If T_in(Cptr, 1) Like "*" & "460" & "*" Then T_out(Cptr, 1) = "EN COURS"
Next

End With
Range("B1").Resize(UBound(T_in), 1) = T_out
End Sub