Signaler

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

Posez votre question RLARCO 1Messages postés jeudi 1 décembre 2016Date d'inscription 1 décembre 2016 Dernière intervention - Dernière réponse le 19 déc. 2016 à 15:40 par michel_m
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 
Utile
+0
moins plus
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
RLARCO- 16 déc. 2016 à 11:41
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,
Répondre
Donnez votre avis
Utile
+0
moins plus
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 20296Messages postés mardi 11 septembre 2007Date d'inscription ContributeurStatut 22 février 2017 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
Répondre
Donnez votre avis
Utile
+0
moins plus
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
RLARCO- 19 déc. 2016 à 11:23
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
Répondre
Donnez votre avis
Utile
+0
moins plus
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

Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !