VBA cherche valeurs d'un classeur
marcolino
-
swissmarcolino Messages postés 12 Statut Membre -
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
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
A voir également:
- VBA cherche valeurs d'un classeur
- Imprimer un classeur excel sur mac - Guide
- Excel compter cellule couleur sans vba - Guide
- Excel liste de valeurs - Guide
- Find vba - Astuces et Solutions
- Vba attendre 1 seconde ✓ - Forum VB / VBA
2 réponses
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
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
Je vais essayer Lundi (j'ai des Rdv aujourd'hui) et je vous redis.
Merci beaucoup
Salutations
Marcolino
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