Bonjour
Je suis nouveau sur le forum et débutant en vba...j'ai donc forcement un soucis !
merci pour votre aide !!
voici un état du chantier :
j'ai un fichier excel avec X feuilles contenant des données diverses mais toujours sous le même format.
Je cherche a trouver toutes les cellules contenant un mot en particulier parmi toutes les feuilles et remplacer la cellule étant 3 colonnes plus loin par un nombre malheureusement la macro que j'ai monté ne me permet pas de trouver tous les mots dans chaque feuille et se contente de ne changer que le premier mot.
pour être plus clair :
je cherche "toto" dans toutes les feuilles, un fois "toto" trouve je veux remplacer le contenu de la cellule qui se trouve 3 colonnes plus loin par un nombre 10 par exemple et ainsi de suite pour tous les "toto" trouves.
voici la macro...montée avec ce que j'ai pu glane a gauche et a droite...
Sub Remplacement_donnees_dans_classeur()
'déclaration des variables :
Dim Ws As Worksheet
Dim Trouve As Range, PlageDeRecherche As Range
Dim Valeur_Cherchee As String, AdresseTrouvee As String
Application.ScreenUpdating = False
For Each Ws In Worksheets
Ws.Select
'********* à adapter ***********
'affectation de valeurs aux variables :
'on cherche le mot "toto"
'dans la deuxieme colonne de la feuille active
Set PlageDeRecherche = ActiveSheet.Columns(2)
'*******************************
'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)
With ActiveSheet
For Each Trouve In PlageDeRecherche
Valeur_Cherchee = "toto"
Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)
'traitement de l'erreur possible : Si on ne trouve rien :
If Trouve Is Nothing Then
'ici, traitement pour le cas où la valeur n'est pas trouvée
AdresseTrouvee = Valeur_Cherchee & " n'est pas présent dans " & PlageDeRecherche.Address
Else
'ici, traitement pour le cas où la valeur est trouvée
Trouve.Offset(, 3).Value = Val("1.9")
End If
Next Trouve
End With
Next Ws
End Sub