VBA - Range.Value Like

Bonjour à tous,

J'essaie de rédiger une macro qui me permet, par la sélection d'un client, d'indiquer les valeurs de cellules situées sur différentes feuilles, mais lorsque je change de client, les valeurs de l'ancien restent affichées :-(

Quelqu'un pourrait m'aider svp ?

Désolée je suis novice, et ma macro n'est pas terminée (il me reste encore de nombreux clients et de nombreuses valeurs à créer) ci-dessous la partie de ma macro qui bloque :

Sub ActualiserRapid() 'client1

If Sheets("Facturation").Range("F11").Value Like "*Rapid*" Then
Range("E24") = Sheets("Rapid Market").Range("C38")
Range("E25") = Sheets("Rapid Market").Range("E38")
Range("E26") = Sheets("Rapid Market").Range("G38")
Range("E27") = Sheets("Rapid Market").Range("I38")
Range("E28") = Sheets("Rapid Market").Range("K38")
Range("E29") = Sheets("Rapid Market").Range("M38")

End If

End Sub

Sub ActualiserEcole() 'client2

If Sheets("Facturation").Range("F11").Value Like "*Ecole*" Then
Range("E24") = Sheets("Ecole NLC").Range("C36")
Range("E25") = Sheets("Ecole NLC").Range("D36")

End If

End Sub

Sub MasquerLigneselonValeur()
Debut = 24
Fin = 29
ColNb = 5
For i = Debut To Fin
If Cells(i, ColNb).Value = 0 Then
Cells(i, ColNb).EntireRow.Hidden = True
Else
Cells(i, ColNb).EntireRow.Hidden = False
End If
Next i
End Sub

Salut,

Déjà faut dire si ça bloque et où cela bloque, ou bien si tu n'as pas le résultat attendu, ce n'est pas pareil.

mais lorsque je change de client, les valeurs de l'ancien restent affichées :-(

Si tu parle des cellules E26, 27, 28 et 29 c'est normal puisque tu n'écrases pas les résultats quand tu changes de client, ou de recherche...

Bonjour Angell078, Jean-Paul,

Au début de tes macros Actualiser....

Insérer un

Range("E25:E29").clearcontents

Ce qui va remettre à 0 les valeurs présentes.

La boucle ensuite remplira les valeurs propres à ton client.

0

Oui, Jean-Paul, il s'agit cellules E26, 27, 28 et 29.

Les cellules E26, 27, 28 et 29 me renvoient les résultats de ma Macro Client1 alors que je modifie par le client2.

Rien n'est bloqué, ce n'est pas le résultat attendu en effet.

Merci X Cellus, j'ai inséré ton code, dans mes macros et cela ne fonctionne pas... Cela me met le résultat uniquement de E24 pour le client1 et 2. Car ma Macro MasquerLigneselonValeur() masque tous les lignes à 0 alors qu'elles contiennent bien des valeurs positives. Mais pourquoi uniquement E24... je ne comprends pas....

A nouveau,

Poster un mini fichier Excel avec données anonymes et les macros client 1 et 2 et les deux feuilles concernées.

On ne peut pas toujours réaliser un fichier pour toutes les demandes sans connaître plus les données que celui-ci peut contenir.

X Cellus,

Ci-joint mon fichier. Les macros client 1, 2 et 3 sont sur le module 3. Il n'y'a que pour le client 3 que le code ClearContents fonctionne.

Merci.

Bonjour Angell078

quand je vois des commandes "range" qui ne se rapportent pas à une feuille je me pose des questions sur l'objet sur lequel elles opèrent? (normalement une feuille mais laquelle). On écrite systématiquement

FeuilX.Range("xxx") =

On proscrit

Range("xxx") =

Et même pour savoir sur quel classeur ouvert on travaille

On écrit systématiquement

Workbooks("mon classeur").Sheets("ma feuille")

Merci scraper.

J'ai apporté les modifs comme ceci :

Sub ActualiserRapid()

Workbooks("Facturation.xlsm").Sheets("Facturation").Range("E25:E29").ClearContents

If Workbooks("Facturation.xlsm").Sheets("Facturation").Range("F11").Value Like "*Rapid*" Then
Workbooks("Facturation.xlsm").Sheets("Facturation").Range("E24") = Sheets("Rapid Market").Range("C38")
Workbooks("Facturation.xlsm").Sheets("Facturation").Range("E25") = Sheets("Rapid Market").Range("E38")
Workbooks("Facturation.xlsm").Sheets("Facturation").Range("E26") = Sheets("Rapid Market").Range("G38")
Workbooks("Facturation.xlsm").Sheets("Facturation").Range("E27") = Sheets("Rapid Market").Range("I38")
Workbooks("Facturation.xlsm").Sheets("Facturation").Range("E28") = Sheets("Rapid Market").Range("K38")
Workbooks("Facturation.xlsm").Sheets("Facturation").Range("E29") = Sheets("Rapid Market").Range("M38")

End If

End Sub

Rechercher des sujets similaires à "vba range value like"