VBA cherche valeurs d'un classeur

marcolino -  
swissmarcolino Messages postés 12 Statut Membre -
Bonjour,

J'ai un petite problème !

Je doit créer un script VBA qui parcoure tout un classeur à la recherche de ligne qui contienne un numéro de référence commençant par "R5".

Ensuite je doit sur une autre feuille marque ca fameux numéro de référence ainsi que le prix (qui se trouve sur la meme ligne.)

En resumé :

J'ai un fichier excel avec plusieurs feuilles contenant des donnée :

réf Description prix
R50164 xxxx 123
R70123 xxxx 321
R50456 xxxx 213

et je doit faire un fichier avec seulement les R5****

réf prix
R50164 123
R50456 213

Mon script actuel (avec la macro) ouvre le fichier source, mais mes recherche trouve 1 seule valeur et j'arrive pas a les reprendre !

Si qqn peux m'aider !?!

merci à tous d'avoir lus !

Salutations

Marcolino

2 réponses

al1_delon Messages postés 259 Date d'inscription   Statut Membre Dernière intervention   25
 
Bonsoir,

Voici un exemple:

Sub Totaux()
Dim C As Variant, I As Integer
Worksheets(1).Activate 'La feuille où on veut insérer les totaux
Range("D7").Select 'La cellule où on veut mettre les totaux
For I = 1 To ThisWorkbook.Worksheets.Count 'Parcourir toutes les feuilles du classeur
For Each C In Worksheets(I).Range("B6:B1000").Cells 'les données de base
If Left(C, 2) = "R5" Then 'si la cellule débute par R5
ActiveCell.Value = ActiveCell.Value + C.Offset(0, 1).Value 'on ajoute la valeur à la cellule Total
End If
Next C
Next I
End Sub
0
marcolino
 
Merci al1_delon !

Je vais essayer Lundi (j'ai des Rdv aujourd'hui) et je vous redis.

Merci beaucoup

Salutations

Marcolino
0
marcolino
 
Hello à tous et à toi al1_delon.

J'ai testé ton code. Malheureusement il me fait un "imcompatibilité de type" sur C.

Voici mon code adapté :

Dim C As Variant, I As Integer
Worksheets(1).Activate 'La feuille ou se trouve le tableau de sortie
Range("A2").Select 'La cellule où on veut mettre les totaux
For I = 1 To ThisWorkbook.Worksheets.Count 'Parcourir toutes les feuilles du classeur
For Each C In Worksheets(I).Range("O2:O1000").Cells 'les données de base
If Left(C, 2) = "R5" Then 'si la cellule débute par R5
ActiveCell.Value = ActiveCell.Value + C.Offset(0, 1).Value 'on ajoute la valeur à la cellule Total
End If
Next C
Next I


De plus, moi je doit pas faire un total mais récupérer les prix et les coller à la suite sur le tableau, comment reprendre les valeurs de la ligne et les copiers ?

fichier source :

réf Description prix
R50164 xxxx 123 chf
R70123 xxxx 321 chf
R50456 xxxx 213 chf

Destination
réf prix
R50164 123 chf
R50456 213 chf

Merci beaucoup pour l'aide !!

Salutations
0
swissmarcolino Messages postés 12 Statut Membre
 
Personne ne peut m'aider ?

svp ! Merci beaucoup
0