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

Comment convertir une macro excel en VBA

14 réponses
Avatar
deeperpaul
Bonjour pouvez-vous m'aider à convertir cette macro en VBA (je ne comprends
pas l'anglais):

Enregistrement1 (a)
=POSER.VALEUR(qte_E;0)
=POSER.VALEUR(qte_S;0)

=OUVRIR("d:\privé\plmat\INT\Entrees.xls")
=SELECTIONNER("L2C1")
=OUVRIR("d:\privé\plmat\INT\Sorties.xls")
=SELECTIONNER("L2C1")
=TANT.QUE(CELLULE.ACTIVE()<>"")
=SELECTIONNER("lc10")
=TANT.QUE(CELLULE.ACTIVE()="OK")
=SELECTIONNER("l(1)c")
=SUIVANT()
=SELECTIONNER("lc5")
=CELLULE.ACTIVE() (NumSerie)
=SELECTIONNER("lc8")
=CELLULE.ACTIVE() (qte_S)

=ACTIVER("Entrees.xls")
=SI(RECHERCHER.SELECTION(NumSerie;1;2;1;1;FAUX))
=SELECTIONNER(DECALER(CELLULE.ACTIVE();0;6;;))
=ACTIVER("Sorties.xls")
=SELECTIONNER("lc1")
=COPIER()
=ACTIVER("Entrees.xls")
=COLLER()
=SELECTIONNER(DECALER(CELLULE.ACTIVE();0;1;;))
=ACTIVER("Sorties.xls")
=SELECTIONNER("lc2")
=COPIER()
=ACTIVER("Entrees.xls")
=COLLER()
=SELECTIONNER("lc9")
=CELLULE.ACTIVE() (qte_E)
=FORMULE(qte_E-qte_S)

=ACTIVER("Sorties.xls")
=SELECTIONNER("lc10")
=FORMULE("OK")
=FIN.SI()
=SELECTIONNER("l(1)c1")
=POSER.VALEUR(qte_E;0)
=POSER.VALEUR(qte_S;0)


=SUIVANT()
=ACTIVER("Entrees.xls")
=SELECTIONNER("l1c1")

=RETOUR()


Merci beaucoup.

10 réponses

1 2
Avatar
Francois L
Bonjour pouvez-vous m'aider à convertir cette macro en VBA (je ne comprends
pas l'anglais):

Enregistrement1 (a)
=POSER.VALEUR(qte_E;0)
=(...)


Bonsoir,

As tu essayé d'utiliser ce qui est dans le lien
http://www.excelabo.net/xl/macros.php#macrosXL4

--
François L

Avatar
JLuc
*Bonjour deeperpaul*,
Je veux bien te donner un coup de main, mais il faudrai que tu précises
un peu plus ce que tu veux faire

Bonjour pouvez-vous m'aider à convertir cette macro en VBA (je ne comprends
pas l'anglais):

Enregistrement1 (a)
C'est quoi : Enregistrement1 (a) ?


Poser quelle valeur et où ?
=POSER.VALEUR(qte_E;0)
=POSER.VALEUR(qte_S;0)

=OUVRIR("d:privéplmatINTEntrees.xls")
Workbooks.Open("d:privéplmatINTEntrees.xls")


=SELECTIONNER("L2C1")
Range("A2").Select


=OUVRIR("d:privéplmatINTSorties.xls")
Workbooks.Open("d:privéplmatINTSorties.xls")


=SELECTIONNER("L2C1")
Range("A2").Select


=TANT.QUE(CELLULE.ACTIVE()<>"")
While Activecell <> ""


=SELECTIONNER("lc10")
Cells(Activecell.Row, 10).Select


=TANT.QUE(CELLULE.ACTIVE()="OK")
While Attivecell = "OK"

=SELECTIONNER("l(1)c")
Activecell.Offset(1,0).Select


=SUIVANT()
Loop

=SELECTIONNER("lc5")
Cells(ActiveCell.Row, 5).Select


ÎLLULE.ACTIVE() (NumSerie)
ActiveCell = NumSerie '????


=SELECTIONNER("lc8")
Cells(ActiveCell.Row, 8).Select


ÎLLULE.ACTIVE() (qte_S)
ActiveCell = qte_S '????


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=SI(RECHERCHER.SELECTION(NumSerie;1;2;1;1;FAUX))
If ??? Then


=SELECTIONNER(DECALER(CELLULE.ACTIVE();0;6;;))
ActiveCell.Offset(0, 6).Select


¬TIVER("Sorties.xls")
Workbooks("Sorties.xls").Activate


=SELECTIONNER("lc1")
Cells(ActiveCell.Row, 1).Select


=COPIER()
ActiveCell.Copy


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=COLLER()
ActiveCell.Paste


=SELECTIONNER(DECALER(CELLULE.ACTIVE();0;1;;))
ActiveCell.Offset(0,1).Select


¬TIVER("Sorties.xls")
Workbooks("Sorties.xls").Activate


=SELECTIONNER("lc2")
Cells(ActiveCell.Row, 2).Select


=COPIER()
ActiveCell.Copy


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=COLLER()
ActiveCell.Paste


=SELECTIONNER("lc9")
Cells(ActiveCell.Row, 9).Select


ÎLLULE.ACTIVE() (qte_E)
ActiveCell = qte_E '????


=FORMULE(qte_E-qte_S)
ActiveCell = qte_E - qte_S 'Ne va pas avec instruction au-dessus

!!!


¬TIVER("Sorties.xls")
Workbooks("Sorties.xls").Activate


=SELECTIONNER("lc10")
Cells(ActiveCell.Row, 10).Select


=FORMULE("OK")
ActiveCell = "OK"


=FIN.SI()
End If


=SELECTIONNER("l(1)c1")
Cells(ActiveCell.Row + 1, 1).Select


Poser quelle valeur et où ?
=POSER.VALEUR(qte_E;0)
=POSER.VALEUR(qte_S;0)


=SUIVANT()
Loop


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=SELECTIONNER("l1c1")
Cells(1, 1).Select


=RETOUR()
End Sub





Voila (en gros) ce qu'il faut écrire. Avec tous les points d'ombres

Merci beaucoup.
De rien


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
deeperpaul
Merci JLuc, tu m'as déjà beaucoup dépanner. Cette macro a été écrite sous
Excel 5.

En fait, j'ai un fichier Entrees:
Date, BE, CodeArt, Design, Numserie,Qte,etc...

et un fichier Sorties:
Date, BS,CodeArt, Design, Numserie,Qte,etc...

je voudrais donc les comparés, afin de gérer le stock.




*Bonjour deeperpaul*,
Je veux bien te donner un coup de main, mais il faudrai que tu précises
un peu plus ce que tu veux faire

Bonjour pouvez-vous m'aider à convertir cette macro en VBA (je ne comprends
pas l'anglais):

Enregistrement1 (a)
C'est quoi : Enregistrement1 (a) ?


Poser quelle valeur et où ?
=POSER.VALEUR(qte_E;0)
=POSER.VALEUR(qte_S;0)

=OUVRIR("d:privéplmatINTEntrees.xls")
Workbooks.Open("d:privéplmatINTEntrees.xls")


=SELECTIONNER("L2C1")
Range("A2").Select


=OUVRIR("d:privéplmatINTSorties.xls")
Workbooks.Open("d:privéplmatINTSorties.xls")


=SELECTIONNER("L2C1")
Range("A2").Select


=TANT.QUE(CELLULE.ACTIVE()<>"")
While Activecell <> ""


=SELECTIONNER("lc10")
Cells(Activecell.Row, 10).Select


=TANT.QUE(CELLULE.ACTIVE()="OK")
While Attivecell = "OK"

=SELECTIONNER("l(1)c")
Activecell.Offset(1,0).Select


=SUIVANT()
Loop

=SELECTIONNER("lc5")
Cells(ActiveCell.Row, 5).Select


ÎLLULE.ACTIVE() (NumSerie)
ActiveCell = NumSerie '????


=SELECTIONNER("lc8")
Cells(ActiveCell.Row, 8).Select


ÎLLULE.ACTIVE() (qte_S)
ActiveCell = qte_S '????


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=SI(RECHERCHER.SELECTION(NumSerie;1;2;1;1;FAUX))
If ??? Then


=SELECTIONNER(DECALER(CELLULE.ACTIVE();0;6;;))
ActiveCell.Offset(0, 6).Select


¬TIVER("Sorties.xls")
Workbooks("Sorties.xls").Activate


=SELECTIONNER("lc1")
Cells(ActiveCell.Row, 1).Select


=COPIER()
ActiveCell.Copy


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=COLLER()
ActiveCell.Paste


=SELECTIONNER(DECALER(CELLULE.ACTIVE();0;1;;))
ActiveCell.Offset(0,1).Select


¬TIVER("Sorties.xls")
Workbooks("Sorties.xls").Activate


=SELECTIONNER("lc2")
Cells(ActiveCell.Row, 2).Select


=COPIER()
ActiveCell.Copy


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=COLLER()
ActiveCell.Paste


=SELECTIONNER("lc9")
Cells(ActiveCell.Row, 9).Select


ÎLLULE.ACTIVE() (qte_E)
ActiveCell = qte_E '????


=FORMULE(qte_E-qte_S)
ActiveCell = qte_E - qte_S 'Ne va pas avec instruction au-dessus

!!!


¬TIVER("Sorties.xls")
Workbooks("Sorties.xls").Activate


=SELECTIONNER("lc10")
Cells(ActiveCell.Row, 10).Select


=FORMULE("OK")
ActiveCell = "OK"


=FIN.SI()
End If


=SELECTIONNER("l(1)c1")
Cells(ActiveCell.Row + 1, 1).Select


Poser quelle valeur et où ?
=POSER.VALEUR(qte_E;0)
=POSER.VALEUR(qte_S;0)


=SUIVANT()
Loop


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=SELECTIONNER("l1c1")
Cells(1, 1).Select


=RETOUR()
End Sub





Voila (en gros) ce qu'il faut écrire. Avec tous les points d'ombres

Merci beaucoup.
De rien


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O






Avatar
michel
Bonjour
D'apres mes souvenirs d'excel4 quelques precisions
=TANT.QUE(CELLULE.ACTIVE()<>"")
While Activecell <> ""


=SUIVANT()
Loop

Avec while j'utiliserais plutot Wend pour traduire suivant


=SUIVANT()
Wend



et pour
ÎLLULE.ACTIVE() (qte_S)
ActiveCell = qte_S '????

dans excel4 on nomme qte_s la cellule (macro) et on recupere dedans le


contenu de la cellule active donc
qte_S¬tivecell.value
Pour les poser.valeur
=POSER.VALEUR(qte_E;0)
=POSER.VALEUR(qte_S;0)
qte_E=0



qte_S=0
Pas la peine de nommer on utilise des variables
HTH
--
Michel
"deeperpaul" a écrit dans le message
de news:
Merci JLuc, tu m'as déjà beaucoup dépanner. Cette macro a été écrite sous
Excel 5.

En fait, j'ai un fichier Entrees:
Date, BE, CodeArt, Design, Numserie,Qte,etc...

et un fichier Sorties:
Date, BS,CodeArt, Design, Numserie,Qte,etc...

je voudrais donc les comparés, afin de gérer le stock.




*Bonjour deeperpaul*,
Je veux bien te donner un coup de main, mais il faudrai que tu précises
un peu plus ce que tu veux faire

Bonjour pouvez-vous m'aider à convertir cette macro en VBA (je ne
comprends
pas l'anglais):

Enregistrement1 (a)
C'est quoi : Enregistrement1 (a) ?


Poser quelle valeur et où ?
=POSER.VALEUR(qte_E;0)
=POSER.VALEUR(qte_S;0)

=OUVRIR("d:privéplmatINTEntrees.xls")
Workbooks.Open("d:privéplmatINTEntrees.xls")


=SELECTIONNER("L2C1")
Range("A2").Select


=OUVRIR("d:privéplmatINTSorties.xls")
Workbooks.Open("d:privéplmatINTSorties.xls")


=SELECTIONNER("L2C1")
Range("A2").Select


=TANT.QUE(CELLULE.ACTIVE()<>"")
While Activecell <> ""


=SELECTIONNER("lc10")
Cells(Activecell.Row, 10).Select


=TANT.QUE(CELLULE.ACTIVE()="OK")
While Attivecell = "OK"

=SELECTIONNER("l(1)c")
Activecell.Offset(1,0).Select


=SUIVANT()
Loop

=SELECTIONNER("lc5")
Cells(ActiveCell.Row, 5).Select


ÎLLULE.ACTIVE() (NumSerie)
ActiveCell = NumSerie '????


=SELECTIONNER("lc8")
Cells(ActiveCell.Row, 8).Select


ÎLLULE.ACTIVE() (qte_S)
ActiveCell = qte_S '????


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=SI(RECHERCHER.SELECTION(NumSerie;1;2;1;1;FAUX))
If ??? Then


=SELECTIONNER(DECALER(CELLULE.ACTIVE();0;6;;))
ActiveCell.Offset(0, 6).Select


¬TIVER("Sorties.xls")
Workbooks("Sorties.xls").Activate


=SELECTIONNER("lc1")
Cells(ActiveCell.Row, 1).Select


=COPIER()
ActiveCell.Copy


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=COLLER()
ActiveCell.Paste


=SELECTIONNER(DECALER(CELLULE.ACTIVE();0;1;;))
ActiveCell.Offset(0,1).Select


¬TIVER("Sorties.xls")
Workbooks("Sorties.xls").Activate


=SELECTIONNER("lc2")
Cells(ActiveCell.Row, 2).Select


=COPIER()
ActiveCell.Copy


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=COLLER()
ActiveCell.Paste


=SELECTIONNER("lc9")
Cells(ActiveCell.Row, 9).Select


ÎLLULE.ACTIVE() (qte_E)
ActiveCell = qte_E '????


=FORMULE(qte_E-qte_S)
ActiveCell = qte_E - qte_S 'Ne va pas avec instruction au-dessus

!!!


¬TIVER("Sorties.xls")
Workbooks("Sorties.xls").Activate


=SELECTIONNER("lc10")
Cells(ActiveCell.Row, 10).Select


=FORMULE("OK")
ActiveCell = "OK"


=FIN.SI()
End If


=SELECTIONNER("l(1)c1")
Cells(ActiveCell.Row + 1, 1).Select


Poser quelle valeur et où ?
=POSER.VALEUR(qte_E;0)
=POSER.VALEUR(qte_S;0)


=SUIVANT()
Loop


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=SELECTIONNER("l1c1")
Cells(1, 1).Select


=RETOUR()
End Sub





Voila (en gros) ce qu'il faut écrire. Avec tous les points d'ombres

Merci beaucoup.
De rien


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O








Avatar
JLuc
*Bonjour michel*,
Tu as raison, j'ai repondu un peu vite :')

Bonjour
D'apres mes souvenirs d'excel4 quelques precisions
=TANT.QUE(CELLULE.ACTIVE()<>"")
While Activecell <> ""


=SUIVANT()
Loop

Avec while j'utiliserais plutot Wend pour traduire suivant


=SUIVANT()
Wend



et pour
ÎLLULE.ACTIVE() (qte_S)
ActiveCell = qte_S '????

dans excel4 on nomme qte_s la cellule (macro) et on recupere dedans le


contenu de la cellule active donc
Si tu le dis, je vais te croire (c'est l'inverse de ce à quoi je

pensais)

qte_S¬tivecell.value
Pour les poser.valeur
=POSER.VALEUR(qte_E;0)
=POSER.VALEUR(qte_S;0)
qte_E=0



qte_S=0
Pas la peine de nommer on utilise des variables
HTH
--
Michel


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O




Avatar
deeperpaul
Bonjour et merci Michel,

et pour les fonctions suivantes, peux tu me les traduire :

=SI(RECHERCHER.SELECTION(NumSerie;1;2;1;1;FAUX))
=FORMULE(qte_E-qte_S)

Merci et à +


Bonjour
D'apres mes souvenirs d'excel4 quelques precisions
=TANT.QUE(CELLULE.ACTIVE()<>"")
While Activecell <> ""


=SUIVANT()
Loop

Avec while j'utiliserais plutot Wend pour traduire suivant


=SUIVANT()
Wend



et pour
ÎLLULE.ACTIVE() (qte_S)
ActiveCell = qte_S '????

dans excel4 on nomme qte_s la cellule (macro) et on recupere dedans le


contenu de la cellule active donc
qte_S¬tivecell.value
Pour les poser.valeur
=POSER.VALEUR(qte_E;0)
=POSER.VALEUR(qte_S;0)
qte_E=0



qte_S=0
Pas la peine de nommer on utilise des variables
HTH
--
Michel
"deeperpaul" a écrit dans le message
de news:
Merci JLuc, tu m'as déjà beaucoup dépanner. Cette macro a été écrite sous
Excel 5.

En fait, j'ai un fichier Entrees:
Date, BE, CodeArt, Design, Numserie,Qte,etc...

et un fichier Sorties:
Date, BS,CodeArt, Design, Numserie,Qte,etc...

je voudrais donc les comparés, afin de gérer le stock.




*Bonjour deeperpaul*,
Je veux bien te donner un coup de main, mais il faudrai que tu précises
un peu plus ce que tu veux faire

Bonjour pouvez-vous m'aider à convertir cette macro en VBA (je ne
comprends
pas l'anglais):

Enregistrement1 (a)
C'est quoi : Enregistrement1 (a) ?


Poser quelle valeur et où ?
=POSER.VALEUR(qte_E;0)
=POSER.VALEUR(qte_S;0)

=OUVRIR("d:privéplmatINTEntrees.xls")
Workbooks.Open("d:privéplmatINTEntrees.xls")


=SELECTIONNER("L2C1")
Range("A2").Select


=OUVRIR("d:privéplmatINTSorties.xls")
Workbooks.Open("d:privéplmatINTSorties.xls")


=SELECTIONNER("L2C1")
Range("A2").Select


=TANT.QUE(CELLULE.ACTIVE()<>"")
While Activecell <> ""


=SELECTIONNER("lc10")
Cells(Activecell.Row, 10).Select


=TANT.QUE(CELLULE.ACTIVE()="OK")
While Attivecell = "OK"

=SELECTIONNER("l(1)c")
Activecell.Offset(1,0).Select


=SUIVANT()
Loop

=SELECTIONNER("lc5")
Cells(ActiveCell.Row, 5).Select


ÎLLULE.ACTIVE() (NumSerie)
ActiveCell = NumSerie '????


=SELECTIONNER("lc8")
Cells(ActiveCell.Row, 8).Select


ÎLLULE.ACTIVE() (qte_S)
ActiveCell = qte_S '????


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=SI(RECHERCHER.SELECTION(NumSerie;1;2;1;1;FAUX))
If ??? Then


=SELECTIONNER(DECALER(CELLULE.ACTIVE();0;6;;))
ActiveCell.Offset(0, 6).Select


¬TIVER("Sorties.xls")
Workbooks("Sorties.xls").Activate


=SELECTIONNER("lc1")
Cells(ActiveCell.Row, 1).Select


=COPIER()
ActiveCell.Copy


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=COLLER()
ActiveCell.Paste


=SELECTIONNER(DECALER(CELLULE.ACTIVE();0;1;;))
ActiveCell.Offset(0,1).Select


¬TIVER("Sorties.xls")
Workbooks("Sorties.xls").Activate


=SELECTIONNER("lc2")
Cells(ActiveCell.Row, 2).Select


=COPIER()
ActiveCell.Copy


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=COLLER()
ActiveCell.Paste


=SELECTIONNER("lc9")
Cells(ActiveCell.Row, 9).Select


ÎLLULE.ACTIVE() (qte_E)
ActiveCell = qte_E '????


=FORMULE(qte_E-qte_S)
ActiveCell = qte_E - qte_S 'Ne va pas avec instruction au-dessus

!!!


¬TIVER("Sorties.xls")
Workbooks("Sorties.xls").Activate


=SELECTIONNER("lc10")
Cells(ActiveCell.Row, 10).Select


=FORMULE("OK")
ActiveCell = "OK"


=FIN.SI()
End If


=SELECTIONNER("l(1)c1")
Cells(ActiveCell.Row + 1, 1).Select


Poser quelle valeur et où ?
=POSER.VALEUR(qte_E;0)
=POSER.VALEUR(qte_S;0)


=SUIVANT()
Loop


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=SELECTIONNER("l1c1")
Cells(1, 1).Select


=RETOUR()
End Sub





Voila (en gros) ce qu'il faut écrire. Avec tous les points d'ombres

Merci beaucoup.
De rien


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O













Avatar
JLuc
deeperpaul avait soumis l'idée :
Bonjour et merci Michel,

et pour les fonctions suivantes, peux tu me les traduire :

=SI(RECHERCHER.SELECTION(NumSerie;1;2;1;1;FAUX))
=FORMULE(qte_E-qte_S)

Merci et à +


J'avoue que je ne vois pas trop quoi rechercher dans la selection ni à
quoi correspondent tous les paramètres. Peux tu l'exprimer en français
?
si le NumSerie est dans la sélection (ou dans la cellule active), alors
....

MaVariable ou ActiveCell = qte_E - qte_S

--
JLuc

Avatar
michel
Bonjour
Si mes souvenirs sont corrects rechercher.selection te positionne sur la
cellule correspondant a numserie
donc essaie
ÎLLULE.ACTIVE() (NumSerie)
numSerie¬tiveCell




*** ETC
=SELECTIONNER("lc8")
Cells(ActiveCell.Row, 8).Select


ÎLLULE.ACTIVE() (qte_S)
ActiveCell = qte_S '????


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


*** Suite



=SI(RECHERCHER.SELECTION(NumSerie;1;2;1;1;FAUX))
set cellule=selection.find(what:=numserie) ' la methode find met le resultat




dans la variable cellule mais ne selectionne pas
'si tu ajoute .activate elle selectionne mais le code plante si non trouve
d'ou les ligne pour tester si il y a quelquechose dans la var
if not cellule is nothing then
range(cellule.address.select)
*** ensuite ton code


Quand a formule J.luc te l'avais deja traduit
activecell=qte_e-qte_s
Voila mais SGDG
--
Michel
"deeperpaul" a écrit dans le message
de news:
Bonjour et merci Michel,

et pour les fonctions suivantes, peux tu me les traduire :

=SI(RECHERCHER.SELECTION(NumSerie;1;2;1;1;FAUX))
=FORMULE(qte_E-qte_S)

Merci et à +


Bonjour
D'apres mes souvenirs d'excel4 quelques precisions
=TANT.QUE(CELLULE.ACTIVE()<>"")
While Activecell <> ""


=SUIVANT()
Loop

Avec while j'utiliserais plutot Wend pour traduire suivant


=SUIVANT()
Wend



et pour
ÎLLULE.ACTIVE() (qte_S)
ActiveCell = qte_S '????

dans excel4 on nomme qte_s la cellule (macro) et on recupere dedans le


contenu de la cellule active donc
qte_S¬tivecell.value
Pour les poser.valeur
=POSER.VALEUR(qte_E;0)
=POSER.VALEUR(qte_S;0)
qte_E=0



qte_S=0
Pas la peine de nommer on utilise des variables
HTH
--
Michel
"deeperpaul" a écrit dans le
message
de news:
Merci JLuc, tu m'as déjà beaucoup dépanner. Cette macro a été écrite
sous
Excel 5.

En fait, j'ai un fichier Entrees:
Date, BE, CodeArt, Design, Numserie,Qte,etc...

et un fichier Sorties:
Date, BS,CodeArt, Design, Numserie,Qte,etc...

je voudrais donc les comparés, afin de gérer le stock.




*Bonjour deeperpaul*,
Je veux bien te donner un coup de main, mais il faudrai que tu
précises
un peu plus ce que tu veux faire

Bonjour pouvez-vous m'aider à convertir cette macro en VBA (je ne
comprends
pas l'anglais):

Enregistrement1 (a)
C'est quoi : Enregistrement1 (a) ?


Poser quelle valeur et où ?
=POSER.VALEUR(qte_E;0)
=POSER.VALEUR(qte_S;0)

=OUVRIR("d:privéplmatINTEntrees.xls")
Workbooks.Open("d:privéplmatINTEntrees.xls")


=SELECTIONNER("L2C1")
Range("A2").Select


=OUVRIR("d:privéplmatINTSorties.xls")
Workbooks.Open("d:privéplmatINTSorties.xls")


=SELECTIONNER("L2C1")
Range("A2").Select


=TANT.QUE(CELLULE.ACTIVE()<>"")
While Activecell <> ""


=SELECTIONNER("lc10")
Cells(Activecell.Row, 10).Select


=TANT.QUE(CELLULE.ACTIVE()="OK")
While Attivecell = "OK"

=SELECTIONNER("l(1)c")
Activecell.Offset(1,0).Select


=SUIVANT()
Loop

=SELECTIONNER("lc5")
Cells(ActiveCell.Row, 5).Select


ÎLLULE.ACTIVE() (NumSerie)
ActiveCell = NumSerie '????


=SELECTIONNER("lc8")
Cells(ActiveCell.Row, 8).Select


ÎLLULE.ACTIVE() (qte_S)
ActiveCell = qte_S '????


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=SI(RECHERCHER.SELECTION(NumSerie;1;2;1;1;FAUX))
If ??? Then


=SELECTIONNER(DECALER(CELLULE.ACTIVE();0;6;;))
ActiveCell.Offset(0, 6).Select


¬TIVER("Sorties.xls")
Workbooks("Sorties.xls").Activate


=SELECTIONNER("lc1")
Cells(ActiveCell.Row, 1).Select


=COPIER()
ActiveCell.Copy


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=COLLER()
ActiveCell.Paste


=SELECTIONNER(DECALER(CELLULE.ACTIVE();0;1;;))
ActiveCell.Offset(0,1).Select


¬TIVER("Sorties.xls")
Workbooks("Sorties.xls").Activate


=SELECTIONNER("lc2")
Cells(ActiveCell.Row, 2).Select


=COPIER()
ActiveCell.Copy


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=COLLER()
ActiveCell.Paste


=SELECTIONNER("lc9")
Cells(ActiveCell.Row, 9).Select


ÎLLULE.ACTIVE() (qte_E)
ActiveCell = qte_E '????


=FORMULE(qte_E-qte_S)
ActiveCell = qte_E - qte_S 'Ne va pas avec instruction au-dessus

!!!


¬TIVER("Sorties.xls")
Workbooks("Sorties.xls").Activate


=SELECTIONNER("lc10")
Cells(ActiveCell.Row, 10).Select


=FORMULE("OK")
ActiveCell = "OK"


=FIN.SI()
End If


=SELECTIONNER("l(1)c1")
Cells(ActiveCell.Row + 1, 1).Select


Poser quelle valeur et où ?
=POSER.VALEUR(qte_E;0)
=POSER.VALEUR(qte_S;0)


=SUIVANT()
Loop


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=SELECTIONNER("l1c1")
Cells(1, 1).Select


=RETOUR()
End Sub





Voila (en gros) ce qu'il faut écrire. Avec tous les points d'ombres

Merci beaucoup.
De rien


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O















Avatar
Michel Gaboly
Bonjour et merci Michel,

et pour les fonctions suivantes, peux tu me les traduire :

=SI(RECHERCHER.SELECTION(NumSerie;1;2;1;1;FAUX))
=FORMULE(qte_E-qte_S)

Merci et à +



RECHERCHER.SELECTION() équivaut à effectuer une recherche dans la feu ille et renvoie VRAI ou FAUX selon que la recherche
a ou non abouti.

Ici la fonction est imbriquée dans un SI(). Il doit y avoir après un FIN.SI()

voici l'équivalent en VBA de =SI(RECHERCHER.SELECTION(NumSerie;1;2;1; 1;FAUX)) :

Sub Test()
Dim c As Range
Set c = Selection.Find(ActiveSheet.Evaluate("NumSerie"), ActiveCel l, xlFormulas, xlPart, xlByRows, xlNext, False)
If Not c Is Nothing Then
' Action si la recherche a abouti
End If
End Sub

Quant à =FORMULE(qte_E-qte_S) :

ActiveCell = qte_E - qte_S

où qte_E et qte_S sont des variables initialisées au préalable.




Pour info, aide de RECHERCHER.SELECTION()

Feuilles macro uniquement
Equivaut à choisir, dans le menu Edition, la commande Rechercher. Sél ectionne la cellule suivante ou précédente qui
contient le texte spécifié et renvoie la valeur VRAI. Si aucune cellu le correspondante n'est trouvée,
RECHERCHER.SELECTION renvoie FAUX et affiche un message.

Syntaxe

RECHERCHER.SELECTION(texte; quoi; comment; par; direction; maj_min)
RECHERCHER.SELECTION?(texte; quoi; comment; par; direction; maj_min)

Texte est le texte que vous voulez chercher. Texte correspond à la z one "Rechercher" de la boîte de dialogue Rechercher.

Quoi est un nombre de 1 à 3 qui spécifie où chercher.

Quoi Cherche dans les

1 Formules
2 Valeurs
3 Commentaires

Comment est le nombre 1 ou 2 et spécifie si la recherche concerne le s cellules contenant uniquement texte ou les
cellules contenant texte dans une chaîne de caractères plus longue.

Comment Recherche du texte sous la forme

1 D'une chaîne complète (la seule valeur de la cellule)
2 Soit d'une chaîne complète, soit d'une partie d'une chaîne plus l ongue

Par est le nombre 1 ou 2 et spécifie s'il faut chercher par lignes o u par colonnes.

Par Cherche par

1 Lignes
2 Colonnes

Direction est le nombre 1 ou 2 et spécifie s'il faut chercher l'occu rrence de texte suivante ou précédente.

Direction Cherche

1 ou omis L'occurrence de texte suivante
2 L'occurrence de texte précédente

Maj_min est une valeur logique qui correspond à la case à cocher " Respecter la casse" de la boîte de dialogue
Rechercher. Si maj_min est VRAI, Microsoft Excel fait correspondre exacte ment les caractères, y compris les majuscules
et les minuscules. S'il est FAUX ou omis, les majuscules et les minuscule s ne sont pas différenciées.

Avatar
Paul V
Bonjour à tous,

Mon petit grain de sel totalement théorique car j'ai pas le temps de faire
plus pour l'instant:

=SI(RECHERCHER.SELECTION(NumSerie;1;2;1;1;FAUX))


SI()
permet de faire un test et d'executer la suite si le test est positif
uniquement

RECHERCHER.SELECTION()
recehrche un texte dans la feuille en cours
les paramètres:
1er: ce qu'on cherhce
2ème: où cad 1 dans formules, 2 dans valeurs et 3 dans commentaires
3ème: Comment defini l'integrite cad 1 en entier ou 2 par partie
4ème: Par cad 1 lecture par ligne, 2 lecture par colonne
5èmè : sens cad 1 vers le bas et 2 vers le haut
6ème majuscule ou non, cad vrai traite un texte en majuscuile et faux les
autres cas.

Les deux derniers sont facultatifs


=FORMULE(qte_E-qte_S)


Met de resultat de qte_E-qte_S dans la cellule active

HTH

PaulV
Tout cela ne nous rajeunit pas, hein ma petit' dame.

"deeperpaul" a écrit dans le message
de news:
Bonjour et merci Michel,

et pour les fonctions suivantes, peux tu me les traduire :

=SI(RECHERCHER.SELECTION(NumSerie;1;2;1;1;FAUX))
=FORMULE(qte_E-qte_S)

Merci et à +


Bonjour
D'apres mes souvenirs d'excel4 quelques precisions
=TANT.QUE(CELLULE.ACTIVE()<>"")
While Activecell <> ""


=SUIVANT()
Loop

Avec while j'utiliserais plutot Wend pour traduire suivant


=SUIVANT()
Wend



et pour
ÎLLULE.ACTIVE() (qte_S)
ActiveCell = qte_S '????

dans excel4 on nomme qte_s la cellule (macro) et on recupere dedans le


contenu de la cellule active donc
qte_S¬tivecell.value
Pour les poser.valeur
=POSER.VALEUR(qte_E;0)
=POSER.VALEUR(qte_S;0)
qte_E=0



qte_S=0
Pas la peine de nommer on utilise des variables
HTH
--
Michel
"deeperpaul" a écrit dans le
message
de news:
Merci JLuc, tu m'as déjà beaucoup dépanner. Cette macro a été écrite
sous
Excel 5.

En fait, j'ai un fichier Entrees:
Date, BE, CodeArt, Design, Numserie,Qte,etc...

et un fichier Sorties:
Date, BS,CodeArt, Design, Numserie,Qte,etc...

je voudrais donc les comparés, afin de gérer le stock.




*Bonjour deeperpaul*,
Je veux bien te donner un coup de main, mais il faudrai que tu
précises
un peu plus ce que tu veux faire

Bonjour pouvez-vous m'aider à convertir cette macro en VBA (je ne
comprends
pas l'anglais):

Enregistrement1 (a)
C'est quoi : Enregistrement1 (a) ?


Poser quelle valeur et où ?
=POSER.VALEUR(qte_E;0)
=POSER.VALEUR(qte_S;0)

=OUVRIR("d:privéplmatINTEntrees.xls")
Workbooks.Open("d:privéplmatINTEntrees.xls")


=SELECTIONNER("L2C1")
Range("A2").Select


=OUVRIR("d:privéplmatINTSorties.xls")
Workbooks.Open("d:privéplmatINTSorties.xls")


=SELECTIONNER("L2C1")
Range("A2").Select


=TANT.QUE(CELLULE.ACTIVE()<>"")
While Activecell <> ""


=SELECTIONNER("lc10")
Cells(Activecell.Row, 10).Select


=TANT.QUE(CELLULE.ACTIVE()="OK")
While Attivecell = "OK"

=SELECTIONNER("l(1)c")
Activecell.Offset(1,0).Select


=SUIVANT()
Loop

=SELECTIONNER("lc5")
Cells(ActiveCell.Row, 5).Select


ÎLLULE.ACTIVE() (NumSerie)
ActiveCell = NumSerie '????


=SELECTIONNER("lc8")
Cells(ActiveCell.Row, 8).Select


ÎLLULE.ACTIVE() (qte_S)
ActiveCell = qte_S '????


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=SI(RECHERCHER.SELECTION(NumSerie;1;2;1;1;FAUX))
If ??? Then


=SELECTIONNER(DECALER(CELLULE.ACTIVE();0;6;;))
ActiveCell.Offset(0, 6).Select


¬TIVER("Sorties.xls")
Workbooks("Sorties.xls").Activate


=SELECTIONNER("lc1")
Cells(ActiveCell.Row, 1).Select


=COPIER()
ActiveCell.Copy


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=COLLER()
ActiveCell.Paste


=SELECTIONNER(DECALER(CELLULE.ACTIVE();0;1;;))
ActiveCell.Offset(0,1).Select


¬TIVER("Sorties.xls")
Workbooks("Sorties.xls").Activate


=SELECTIONNER("lc2")
Cells(ActiveCell.Row, 2).Select


=COPIER()
ActiveCell.Copy


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=COLLER()
ActiveCell.Paste


=SELECTIONNER("lc9")
Cells(ActiveCell.Row, 9).Select


ÎLLULE.ACTIVE() (qte_E)
ActiveCell = qte_E '????


=FORMULE(qte_E-qte_S)
ActiveCell = qte_E - qte_S 'Ne va pas avec instruction au-dessus

!!!


¬TIVER("Sorties.xls")
Workbooks("Sorties.xls").Activate


=SELECTIONNER("lc10")
Cells(ActiveCell.Row, 10).Select


=FORMULE("OK")
ActiveCell = "OK"


=FIN.SI()
End If


=SELECTIONNER("l(1)c1")
Cells(ActiveCell.Row + 1, 1).Select


Poser quelle valeur et où ?
=POSER.VALEUR(qte_E;0)
=POSER.VALEUR(qte_S;0)


=SUIVANT()
Loop


¬TIVER("Entrees.xls")
Workbooks("Entrees.xls").Activate


=SELECTIONNER("l1c1")
Cells(1, 1).Select


=RETOUR()
End Sub





Voila (en gros) ce qu'il faut écrire. Avec tous les points d'ombres

Merci beaucoup.
De rien


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O















1 2