Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/09/2011, 15h46   #1
Nouveau Membre du Club
 
Inscription : septembre 2010
Messages : 126
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 126
Points : 29
Points : 29
Par défaut modifier un mot par un autre avec des conditions

Bonjour,

Je me base sur cet exemple:

....A.......B....
Produit...Prix
Café1.....5euro
Café2......N/A
Lait1.......N/A
Lait2......1euro

J'ai besoin d'une macro qui me remplace tous les cafés dont le prix est N/A en 5euro et tous les laits dont le prix est N/A en 1euro.

Moi je connais pour l'instant que ce code la qui me modifie les N/A en 5euro :
Code :
1
2
3
4
5
 
Columns("B:B").Select
Selection.Replace What:="N/A", Replacement:="5euro", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
Quelqu'un peut m'aider
Cdt,
Skip
skipeemed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 18h40   #2
Futur Membre du Club
 
Homme
Étudiant
Inscription : août 2011
Messages : 34
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : août 2011
Messages : 34
Points : 16
Points : 16
Mouais ça va que je suis sympa, que j'ai aussi bien galéré en débutant (il y a 1mois) et aussi que j'attends un réponse à mon propre problème.

test ça:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub remplacer()
 
Dim i As Integer 'i est ton numéro de ligne
 
For i = 2 To 50 'ta plage de donnée
    If Cells(i, 2).Value = "N/A" And Cells(i, 1).Value Like "caf*" Then 'cells(i,2) le 2 correspond à la colonne 2
        Cells(i, 2).Value = "5euros"
    ElseIf Cells(i, 2).Value = "N/A" And Cells(i, 1).Value Like "lai*" Then
        Cells(i, 2).Value = "1euros"
    End If
 
Next
 
End Sub
C'est pas un code magnifique mais tu peux coller autant de ligne que tu vaux pour d'autres produits avec un ElseIf etc ...

Ca fera 10€
PolyAmide est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 19h13   #3
Expert Confirmé
 
Avatar de patricktoulon
 
patrick
Inscription : avril 2009
Messages : 1 829
Détails du profil
Informations personnelles :
Nom : patrick
Âge : 42
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Secteur : Bâtiment

Informations forums :
Inscription : avril 2009
Messages : 1 829
Points : 2 857
Points : 2 857
Envoyer un message via MSN à patricktoulon
Par défaut re

un exemple avec find et find next:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub recherche()
With Worksheets(1).Range("a1:a500")
    Set c = .Find("café", LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
           If c.Offset(0, 1).Value = "N/A" Then c.Offset(0, 1).Value = "5€"
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With
 
With Worksheets(1).Range("a1:a500")
    Set c = .Find("lait", LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
           If c.Offset(0, 1).Value = "N/A" Then c.Offset(0, 1).Value = "1€"
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With
End Sub
__________________
mes fichiers dans les contributions:
mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA
mon nouveau mouse in out pour les boutons dans un userform
mon addin pour prendre un cliché de selection de cellules

si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres
et n'oublie pas de voter
patricktoulon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 19h17   #4
Expert Confirmé
 
Avatar de patricktoulon
 
patrick
Inscription : avril 2009
Messages : 1 829
Détails du profil
Informations personnelles :
Nom : patrick
Âge : 42
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Secteur : Bâtiment

Informations forums :
Inscription : avril 2009
Messages : 1 829
Points : 2 857
Points : 2 857
Envoyer un message via MSN à patricktoulon
Par défaut re

allez on est parti

on va maintenant appliquer le filtre de recherche sur la colonne b histoire de voir un peu toutes les possibilités

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
With Worksheets(1).Range("b1:b500")
    Set c = .Find("N/A", LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
           If c.Offset(0, -1).Value = "café" Then c.Value = "5€"
            If c.Offset(0, -1).Value = "lait" Then c.Value = "1€"
 
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With
voila

au plaisir
__________________
mes fichiers dans les contributions:
mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA
mon nouveau mouse in out pour les boutons dans un userform
mon addin pour prendre un cliché de selection de cellules

si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres
et n'oublie pas de voter
patricktoulon est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h44.


 
 
 
 
Partenaires

Hébergement Web