Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

methode pour enregistrer une macro ?

3 réponses
Avatar
José
bonjour, voilà,
dans mon job je me retrouve souvent avec
des données sous forme de colonnes (nom, prénom, ville, age, etc...)
et ces données sont souvent sur plusieurs centaines (ou millier) de lignes.

est-ce que je pourrais par exemple faire une macro qui parcourre
une colonne et qui fasse une opération si la valeur de la
cellule lue correpond à un test. Puis la macro passe à la ligne
suivante (dans la meme colonne), ceci jusqu'a la fin de mes lignes ?


Je me suis dis que je pourrais utiliser l'enregistrement d'une
macro pour
1) me positionner sur la première ligne à tester.
2) ensuite faire "flèche-bas"
3) ensuite si la cellule en question n'est pas vide
4) faire le test
5) si la cellule n'est pas vide alors retour à la case 2)
6) sinon stop.

Voilà, j'espère ne pas avoir été trop "brouillon"

Merci pour votre aide.

José

3 réponses

Avatar
michdenis
Bonsoir José,

Ce que tu veux faire, c'est une boucle sur chacune des cellules d'une colonne de ta base de données et tester si le contenu
répond à un critère particulier... Pour faire ceci, l'enregistreur de macro n'est pas très pratique.

Voici une façon de faire :

Ceci est une boucle sur chaque cellule sur la colonne A1:Ax de la Feuil1
x représente la dernière ligne occupée par une valeur dans la colonne A:A

Le principe est le même pour n'importe quelle colonne.

Il existe un certain nombre de variantes selon le type d'opération que tu as besoin de performer sur la plage de cellules.

'---------------------------------
Sub UneBoucle()

Dim Rg as range

With Worksheets("Feuil1") 'Adapte le nom de la feuille
Set Rg = .Range("A1:A" & .Range("A65356").end(xlup).row)
End with

For each C in Rg
if C.value > 10 then
'ce que tu veux qui se passe
end if
next

Set Rg = Nothing

End sub
'---------------------------------


Salutations!



"José" a écrit dans le message de news:
bonjour, voilà,
dans mon job je me retrouve souvent avec
des données sous forme de colonnes (nom, prénom, ville, age, etc...)
et ces données sont souvent sur plusieurs centaines (ou millier) de lignes.

est-ce que je pourrais par exemple faire une macro qui parcourre
une colonne et qui fasse une opération si la valeur de la
cellule lue correpond à un test. Puis la macro passe à la ligne
suivante (dans la meme colonne), ceci jusqu'a la fin de mes lignes ?


Je me suis dis que je pourrais utiliser l'enregistrement d'une
macro pour
1) me positionner sur la première ligne à tester.
2) ensuite faire "flèche-bas"
3) ensuite si la cellule en question n'est pas vide
4) faire le test
5) si la cellule n'est pas vide alors retour à la case 2)
6) sinon stop.

Voilà, j'espère ne pas avoir été trop "brouillon"

Merci pour votre aide.

José
Avatar
isabelle
bonjour José,

c'est possible en utilisant une boucle, par exemple :

pour chaque cellule de la plage colonne A cellule non vide
si cellule est différent de vide alors faire
action à faire
fin de si
suivant

qui est en vba :

Sub macro1()
For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row)
If c <> Empty Then
'là, je ne sait pas quel action tu veux faire
End If
Next
End Sub

isabelle




bonjour, voilà,
dans mon job je me retrouve souvent avec
des données sous forme de colonnes (nom, prénom, ville, age, etc...)
et ces données sont souvent sur plusieurs centaines (ou millier) de lignes.

est-ce que je pourrais par exemple faire une macro qui parcourre
une colonne et qui fasse une opération si la valeur de la
cellule lue correpond à un test. Puis la macro passe à la ligne
suivante (dans la meme colonne), ceci jusqu'a la fin de mes lignes ?

Je me suis dis que je pourrais utiliser l'enregistrement d'une
macro pour
1) me positionner sur la première ligne à tester.
2) ensuite faire "flèche-bas"
3) ensuite si la cellule en question n'est pas vide
4) faire le test
5) si la cellule n'est pas vide alors retour à la case 2)
6) sinon stop.

Voilà, j'espère ne pas avoir été trop "brouillon"

Merci pour votre aide.

José


Avatar
José
bonjour José,

c'est possible en utilisant une boucle, par exemple :

pour chaque cellule de la plage colonne A cellule non vide
si cellule est différent de vide alors faire
action à faire
fin de si
suivant

qui est en vba :

Sub macro1()
For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row)
If c <> Empty Then
'là, je ne sait pas quel action tu veux faire
End If
Next
End Sub

isabelle




bonjour, voilà,
dans mon job je me retrouve souvent avec
des données sous forme de colonnes (nom, prénom, ville, age, etc...)
et ces données sont souvent sur plusieurs centaines (ou millier) de lignes.

est-ce que je pourrais par exemple faire une macro qui parcourre
une colonne et qui fasse une opération si la valeur de la
cellule lue correpond à un test. Puis la macro passe à la ligne
suivante (dans la meme colonne), ceci jusqu'a la fin de mes lignes ?

Je me suis dis que je pourrais utiliser l'enregistrement d'une
macro pour
1) me positionner sur la première ligne à tester.
2) ensuite faire "flèche-bas"
3) ensuite si la cellule en question n'est pas vide
4) faire le test
5) si la cellule n'est pas vide alors retour à la case 2)
6) sinon stop.

Voilà, j'espère ne pas avoir été trop "brouillon"

Merci pour votre aide.

José
Merci à vous deux !!!



José