Lancer une macro dans For each cell

Le
rmillerlcxl
Bonjour,

Dans un module standard je lance une macro dans un For each cell in Ran=
ge("A1:B4").cells

if

Call Pro_MACRO1

Dans Pro_MACRO1 qui est dans un autre module standard comment le cell p=
eut être reconnu?

Je sais qu'avec Target dans un évènement on peut par exemple =
Call Pro_MACRO2 (Target) et que le nom de la macro doit alors être Pro=
_MACRO2 (Target as range)

Merci à l'avance.
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michd
Le #26460652
Bonjour,
Un petit exemple : À chaque fois que la valeur d'une cellule de la colonne A
change, la macro "MaMacro" est appelée et elle travaille sur ladite cellule.
Tu appliques le code que tu désires. La procédure événementielle
"Worksheet_Change" n'est pas appelée si le changement de valeur dans la
cellule est dû au fait que cette formule contient une formule.
Plus précisément, dès qu'une cellule de la colonne A passe en mode édition
que ce soit suite à un double-clic dans la cellule, l'usage de la touche F2
ou simplement la saisie d'une nouvelle donnée, la procédure événementielle
Worksheet_Change est appelée.
La procédure peut être dans n'importe quel module STANDARD. Si la procédure
est dans un module feuille, tu dois écrire le nom de la feuille (pas le nom
de l'onglet, mais le nom de la propriété "NAME" de la feuille devant le nom
de la macro comme dans cet exemple : Call Feuil1.MaMacro(target). Si tu es
dans cette situation, tu dois spécifier le nom de la feuille. Voir exemple 2
Exemple 1
==================================================== '-----------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Call MaMacro(Target)
End If
End Sub
'-----------------------------------
Sub MaMacro(Rg As Range)
Dim C As Range
For Each C In Rg.Cells
x = C.Value
Next
End Sub
'-----------------------------------
====================================================
Exemple 2
==================================================== Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Call Feuil1.MaMacro(Target.Parent.Name, Target)
End If
End Sub
'-----------------------------------------------------------------------
Sub MaMacro(Feuil As String, Rg As Range)
Dim C As Range
For Each C In Worksheets(Feuil).Range(Rg.Address).Cells
x = C.Value
Next
End Sub
'-----------------------------------------------------------------------
MichD
clive Hors ligne
Le #26460853
Le lundi 22 Janvier 2018 à 00:09 par rmillerlcxl :
Bonjour,

Dans un module standard je lance une macro dans un ... For each cell in Ran=
ge("A1:B4").cells...

if ...

Call Pro_MACRO1

Dans Pro_MACRO1 qui est dans un autre module standard ... comment le cell p=
eut être reconnu?

Je sais qu'avec Target dans un évènement on peut par exemple ... =
Call Pro_MACRO2 (Target) et que le nom de la macro doit alors être Pro=
_MACRO2 (Target as range)

Merci à l'avance.


We () use high quality equipment and materials to produce authentic and fake documents and Banknotes. These Banknotes are highly indistinguishable to touch, feel and naked eyes.This money carries individual serial and by pass security test
including UV-Light and iodine counterfeit pen maker.These notes can be used anywhere tested and approved. We do documents such as passport,ID Cards, Drivers license.All secret features of real passports are carefully duplicated for our Registered and unregistered documents.we are unique producer of quality false and Real documents.We offer only original high-quality Registered and unregistered passports, driver's licenses, ID cards, stamps, Visa, school Diplomas and other products for a number of countries like:USA, Australia, Belgium,Brazil, Canada, Italian,Finland, France, Germany, Israel, Mexico, Netherlands, South Africa,Spain, United Kingdom.
CONTACT OUR SUPPORTERS

General suppor:==========()

Contact e-mails:=====()

-IDs Scan-yes...
-HOLOGRAMS: IDENTICAL
-BARCODES: IDS SCAN
-UV: YES
FAKE IDS WITH FAST SHIPPING - EMAIL SUPPORT
We offer high quality counterfeit bills for the following currencies;
EUR - Euro
USD - US Dollar
GBP - British Pound
INR - Indian Rupee
AUD - Australian Dollar
CAD - Canadian Dollar
AED - Emirati Dirham
ZAR - Rand
CHF - Swiss Franc
CNY - Chinese Yuan Renminbi
MYR - Malaysian Ringgit
THB - Thai Baht

we are able to produce the following items;

REAL BRITISH PASSPORT.
REAL CANADIAN PASSPORT.
REAL FRENCH PASSPORT.
REAL AMERICAN PASSPORT.
REAL RUSSIAN PASSPORT.
REAL JAPANESSE PASSPORT.
REAL CHINESSE PASSPORT.

AND REAL PASSPORT FOR COUNTRIES IN THE EUROPEAN UNION.
REAL DRIVERS LICENSE,I.D CARDS,BIRTH CERTIFATES,DIPLOMATS,MARRIGE CERTIFICATES,AND VISAS.
REGISTERED AND UNREGISTERED BRITISH PASSPORT.
REGISTERED AND UNREGISTERED CANANIAN PASSPORT.
REGISTERED AND UNREGISTERED FRENCH PASSPORT.
REGISTERED AND UNREGISTERED AMERICAN PASSPORT.
REGISTERED AND UNREGISTERED RUSSSIAN PASSPORT.
REGISTERED AND UNREGISTERED JAPANESSE PASSPORT.
REGISTERED AND UNREGISTERED CHINESSE PASSPORT.

REGISTERED AND UNREGISTERED PASSPORTPASSPORT FOR COUNTRIES IN THE EUROPEAN UNION.
Buy Registered and unregistered USA(United States) passports,
Buy Registered and unregistered Australian passports,
Buy Registered and unregistered Belgium passports,
Buy Registered and unregistered Brazilian(Brazil) passports,
Buy Registered and unregistered Canadian(Canada) passports,
Buy Registered and unregistered Finnish(Finland) passports,
Buy Registered and unregistered French(France) passports,
Buy Registered and unregistered German(Germany) passports,
Buy Registered and unregistered Dutch(Netherland/Holland) passports,
Buy Registered and unregistered Israel passports,
Buy Registered and unregistered UK(United Kingdom) passports,
Buy Registered and unregistered Spanish(Spain) passports,
Buy Registered and unregistered Mexican(Mexico) passports,
Buy Registered and unregistered South African passports.
Buy Registered and unregistered Australian driver licenses,
Buy Registered and unregistered Canadian driver licenses,
Buy Registered and unregistered French(France) driver licenses,
Buy Registered and unregistered Dutch(Netherland/Holland) driving licenses,
Buy Registered and unregistered German(Germany) driving licenses,
Buy Registered and unregistered UK(United Kingdom) driving licenses,
Buy Registered and unregistered Diplomatic passports,
Buy Registered and unregistered USA(United States) passports,
Buy Registered and unregistered Australian passports,
Buy Registered and unregistered Belgium passports,
Buy Registered and unregistered Brazilian(Brazil) passports,
Buy Registered and unregistered Canadian(Canada) passports,
Buy Registered and unregistered Finnish(Finland) passports,
Buy Registered and unregistered French(France) passports,
Buy Registered and unregistered German(Germany) passports,
Buy Registered and unregistered Dutch(Netherland/Holland) passports,
Buy Registered and unregistered Israel passports,
Buy Registered and unregistered UK(United Kingdom) passports,
Buy Registered and unregistered Spanish(Spain) passports,
Buy Registered and unregistered Mexican(Mexico) passports,
Buy Registered and unregistered South African passports.
Buy Registered and unregistered Australian driver licenses,
Buy Registered and unregistered Canadian driver licenses,
Buy Registered and unregistered French(France) driver licenses,
Buy Registered and unregistered Dutch(Netherland/Holland) driving licenses,
Buy Registered and unregistered German(Germany) driving licenses,
Buy Registered and unregistered UK(United Kingdom) driving licenses,
Buy Registered and unregistered Diplomatic passports,
Registered and unregistered Camouflage passports,
Registered and unregistered passport Duplicates,
Registered and unregistered USA(united States) passports for sale,
Registered and unregistered Australian passports for sell,
Registered and unregistered Belgium passports for sell,
Registered and unregistered Brazilian(Brazil) passports for sell,
buy Camouflage passports,
express work permits

IELTS certificate,TOIC ETC
express canadian citizenship docu
verified id cards
passport registered
Canada Cards
United States Cards
Student Cards
International Cards
Private Cards
Adoption Certificates
Baptism Certificates
Birth Certificates
Death Certificates
Divorce Certificates
Marriage Certificates
Custom Certificates
High School Diplomas
G.E.D. Diplomas
Home School Diplomas
College Degrees
University Degrees
Trade Skill Certificates
Social Security
Validate SSN Number
Contact e-mails:=============== ()
General Support:=============== ()
rmillerlcxl
Le #26461043
Bonjour,
Merci beaucoup. Je me suis servi de votre exemple dans un évèneme nt Change pour une feuille. Mais je tente d'en faire de même avec un F or each cell. Voir l'exempel ci-dessous. Comment adapter le code ci-dessous afin que cell soit reconnu dans la macro Pro_PRINTCASEPDFINDEX1?
Merci à l'avance.
Sub PRINTCASEPDF()
For Each cell In Activesheet.Range("H11:H234").Cells
If Application.Intersect(cell, ActiveSheet.Range("H50:H200")) Is Nothing Th en
Call Pro_PRINTCASEPDFINDEX1
End If
If Not Application.Intersect(cell, ActiveSheet.Range("H50:H200")) Is Nothin g Then
Call Pro_PRINTCASEPDFINDEX2
End If
Next
Sub Pro_PRINTCASEPDFINDEX1()
If cell.value = 1 then
xxxxxx
End if
end sub
Michd
Le #26461099
Bonjour,
| If Application.Intersect(cell, ActiveSheet.Range("H50:H200")) Is Nothing
Then
A ) L'expression "Cell" est un mot réservé au langage VBA. Il est toujours
préférable d'utiliser des mots ou expressions qui ne font pas partie du
langage utilisé par Excel. En fait, ce mot désigne une barre de commande
d'Excel.
B ) Exemple :
L'Expression "Selection" désigne une plage de cellule ou tout objet (graphe,
bouton de commande ...) qui est sélectionné.
Par conséquent, la macro fait le test à savoir si "Selection" représente
bien une plage de cellule avec cette ligne de code :
If TypeName(Selection) = "Range" Then
Attention : "Selection" fait référence à une plage de cellules ou un objet
dans la feuille active, celle qui est à l'écran.
'---------------------------------------------------
Sub test()
'Déclaration de la variable
Dim Rg As Range, C As Range
If TypeName(Selection) = "Range" Then
Set Rg = Application.Intersect(Selection, ActiveSheet.Range("H50:H200"))
'Boucle sur chacune des cellules
End if
If Not Rg Is Nothing Then
For Each C In Rg.Cells
MsgBox C.Address
Next
End If
End Sub
'---------------------------------------------------
MichD
Cathy Monier
Le #26461162
Bonjour,
Comme le dit Michd, n'utilisez pas Cell en tant que variable et modifiez vo tre code ainsi
Sub PRINTCASEPDF()
Dim Cellule as Range
For Each Cellule In Activesheet.Range("H11:H234").Cells
If Cellule.row >P and cellule.row < 0 Then 'si la cellule se situe en lignes 50 à 200
Call Pro_PRINTCASEPDFINDEX2(Cellule)
else
Call Pro_PRINTCASEPDFINDEX1(Cellule)
End If
Next
Sub Pro_PRINTCASEPDFINDEX2 (Cellule as range)
If Cellule .value = 1 then
xxxxxx
End if
end sub
Sub Pro_PRINTCASEPDFINDEX1 (Cellule as range)
xxxxxx
end sub
isabelle
Le #26461197
bonjour à tous,
il vaut mieux éviter également le mot "cellule"
ce mot employé par MS Excel 4.0
https://www.cjoint.com/c/HAyuK6Don1i
isabelle
Le 2018-01-24 à 11:44, Cathy Monier a écrit :
Bonjour,
Comme le dit Michd, n'utilisez pas Cell en tant que variable et modifiez votre code ainsi
Sub PRINTCASEPDF()
Dim Cellule as Range
For Each Cellule In Activesheet.Range("H11:H234").Cells
If Cellule.row >P and cellule.row < 0 Then 'si la cellule se situe en lignes 50 à 200
Call Pro_PRINTCASEPDFINDEX2(Cellule)
else
Call Pro_PRINTCASEPDFINDEX1(Cellule)
End If
Next
Sub Pro_PRINTCASEPDFINDEX2 (Cellule as range)
If Cellule .value = 1 then
xxxxxx
End if
end sub
Sub Pro_PRINTCASEPDFINDEX1 (Cellule as range)
xxxxxx
end sub

Jacquouille
Le #26461199
.... et en "cellules", elle s'y entend, notre Isabelle.
Pourquoi ne pas employer "for each c ...." comme beaucoup le font?
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"isabelle" a écrit dans le message de groupe de discussion :
p4aqql$1iem$
bonjour à tous,
il vaut mieux éviter également le mot "cellule"
ce mot employé par MS Excel 4.0
https://www.cjoint.com/c/HAyuK6Don1i
isabelle
Le 2018-01-24 à 11:44, Cathy Monier a écrit :
Bonjour,
Comme le dit Michd, n'utilisez pas Cell en tant que variable et modifiez
votre code ainsi
Sub PRINTCASEPDF()
Dim Cellule as Range
For Each Cellule In Activesheet.Range("H11:H234").Cells
If Cellule.row >P and cellule.row < 0 Then 'si la cellule se situe en
lignes 50 à 200
Call Pro_PRINTCASEPDFINDEX2(Cellule)
else
Call Pro_PRINTCASEPDFINDEX1(Cellule)
End If
Next
Sub Pro_PRINTCASEPDFINDEX2 (Cellule as range)
If Cellule .value = 1 then
xxxxxx
End if
end sub
Sub Pro_PRINTCASEPDFINDEX1 (Cellule as range)
xxxxxx
end sub

rmillerlcxl
Le #26461211
Merci beaucoup.
J'ai appliqué vos recommandations et cela a réussi.
pom...pom...pom..
Le #26462192
Ouuupsss... avec un peu de retard
mais en ce jour de St François de Salle :
Septante ???,
vous avez dit : septante !!!
bon zani mon Jacquouille ;-)
"Jacquouille" a écrit dans le message de groupe de discussion :
p4asik$1m35$
.... et en "cellules", elle s'y entend, notre Isabelle.
Pourquoi ne pas employer "for each c ...." comme beaucoup le font?
Jacques
" Le vin est au repas ce que le parfum est à la femme."
Le 2018-01-24 à 11:44, Cathy Monier a écrit :
Jacquouille
Le #26462288
Pire, mon brave Gilbert, dit Modeste:
c'est la 60-dizaines .....( ça fait un peu Mathusalem....)
PS: Mieux vaut moût tard que jamais....
pense souvent à toi et tes formats.
Amitiés.
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"pom...pom...pom.." a écrit dans le message de groupe de discussion :
p4o052$1ni7$
Ouuupsss... avec un peu de retard
mais en ce jour de St François de Salle :
Septante ???,
vous avez dit : septante !!!
bon zani mon Jacquouille ;-)
"Jacquouille" a écrit dans le message de groupe de discussion :
p4asik$1m35$
.... et en "cellules", elle s'y entend, notre Isabelle.
Pourquoi ne pas employer "for each c ...." comme beaucoup le font?
Jacques
" Le vin est au repas ce que le parfum est à la femme."
Le 2018-01-24 à 11:44, Cathy Monier a écrit :
Publicité
Poster une réponse
Anonyme