OVH Cloud OVH Cloud

Condition sous VBA.. CAP2 ?

10 réponses
Avatar
PhilippeD1
Bonjour,

pour faire suite à la ficelle du 12/10/2004 "Condition sous VBA" et, pour ma
culture informatique, lorsque la macro écrit comme convenu "3" dans la
cellule B1; est-il possible de reprendre la main sur la macro.
C'est à dire écrire manuellement ( par exemple 4) sur la cellule B1 ?

Merci
A +

10 réponses

Avatar
CAP2
Salut Philippe,

le problème c'est que j'ai mis en place le code de manière à ce que, sans
que tu n'aies rien à faire, le 3 se mette automatiquement (en fait dès que
tu cliques sur une autre cellule)...
C'est pour ça que j'ai utilisé l'événement SelectionChange...

Si tu veux pouvoir marquer à la main 4 au lieu de 3, et que le 4 reste, il
ne faut pas utiliser cet événement...
Ce que tu peux faire c'est lancer ton écriture automatique quand tu le
désires par une macro.De cette manière, tu auras la main de manière
permanente, et quand tu voudras que l'écriture se fasse automatiquement, tu
lanceras la macro...

Pour faire ça, tu mets dans une feuille de module VBA ce code :

Sub ecrire
If [A1] <> "" Then

Select Case [A1]
Case "YZ"
[B1] = 3
Case "AB"
[B1] = 4
End Select

End If
End Sub

Puis, quand tu veux lancer l'écriture auto, tu fais outils/macro/macro et tu
exécutes la macro ecrire...

Ca marche ?

CAP2
Avatar
CAP2
Oups il manque les parenthèses :

Sub ecrire()

ira mieux...

CAP2
Avatar
PhilippeD1
Salut CAP2,

J'ai essayé, sans succés, de mettre en application cette macro.
Du débutant au pro., un chemin le savoir.
Merci quand même.
A +


Oups il manque les parenthèses :

Sub ecrire()

ira mieux...

CAP2





Avatar
CAP2
Salut Philippe,

on tente quand même ?

Tu ouvres ton classeur et tu cliques droit sur l'onglet de la feuille en
question, puis tu fais "visualiser le code".
Tu dois voir le code que je t'avais donné au début, tu le supprimes.
Sur la gauche de ton écran, tu as une petite fenêtre dans laquelle tu dois
voir marqué VBA Project avec le nom de ton fichier entre parenthèses...
Tu fais un clic-droit dessus, puis "insertion", puis "module".
Dans la feuille blanche qui apparaît, tu colles le code suivant (en l'ayant
modifié à ta sauce...) :

Sub ecrire()
If [A1] <> "" Then

Select Case [A1]
Case "YZ"
[B1] = 3
Case "AB"
[B1] = 4
End Select

End If
End Sub

Maintenant le code ne se déclenchera plus automatiquement comme je te
l'avais proposé avant, ce sera à toi de le lancer quand tu voudras que
l'écriture auto se fasse. Du coup, tu pourras marquer 4 ou autre chose à la
place de 3, et il ne forcera plus pour marquer 3.

Donc, pour lancer ta macro, à partir d'excel tu fais menu
Outils/Macros/Macros et dans la liste des macros, tu dois avoir notre macro
ecrire. Tu cliques sur "exécuter", et là ton écriture auto se lancera...

Ca marche ?

CAP2
Avatar
PhilippeD1
Bonjour CAP2,

j'ai de la chance que tu m'accordes du temps, je vais essayé d'user sans
abuser.
Avec tes explications ultras-précises, le résultat est parfais; Merci.
J'ai rajouté une macro afin de lancer ta macro ecrire en cliquant dans une
cellule :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$G$17" Then ecrire()
End If
End Sub

VBA m'indique une erreur de compilation ?!?!
As tu la solution...
Promis après cela, je pense que j'aurais acquis suffisament de compétences
pour ne plus venir te relancer.
Merci de me donner envie d'apprendre à utiliser VBA et, Merci de me répondre.
A +


Salut Philippe,

on tente quand même ?

Tu ouvres ton classeur et tu cliques droit sur l'onglet de la feuille en
question, puis tu fais "visualiser le code".
Tu dois voir le code que je t'avais donné au début, tu le supprimes.
Sur la gauche de ton écran, tu as une petite fenêtre dans laquelle tu dois
voir marqué VBA Project avec le nom de ton fichier entre parenthèses...
Tu fais un clic-droit dessus, puis "insertion", puis "module".
Dans la feuille blanche qui apparaît, tu colles le code suivant (en l'ayant
modifié à ta sauce...) :

Sub ecrire()
If [A1] <> "" Then

Select Case [A1]
Case "YZ"
[B1] = 3
Case "AB"
[B1] = 4
End Select

End If
End Sub

Maintenant le code ne se déclenchera plus automatiquement comme je te
l'avais proposé avant, ce sera à toi de le lancer quand tu voudras que
l'écriture auto se fasse. Du coup, tu pourras marquer 4 ou autre chose à la
place de 3, et il ne forcera plus pour marquer 3.

Donc, pour lancer ta macro, à partir d'excel tu fais menu
Outils/Macros/Macros et dans la liste des macros, tu dois avoir notre macro
ecrire. Tu cliques sur "exécuter", et là ton écriture auto se lancera...

Ca marche ?

CAP2





Avatar
CAP2
Salut Philippe,

t'inquiète pas, tant que je pourrai répondre aux questions, ça sera avec
plaisir...

Le mieux, à mon avis, c'est de se créer un bouton sur ta feuille et par un
clic dessus que ça d"clenche ta macro...
Tu fais affichage/Barre d'outils et tu affiches la berra "Contrôles".
Dessus, tu as un bouton qui permet d'insérer sur ta feuille un bouton de
commande (commandbutton). Tu cliques dessu et tu dessines ton bouton sur ta
feuille...
Puis tu doubles cliques sur ton bouton et dans la feuille qui apparait tu
mets ce code :

Private Sub CommandButton1_Click()

Call ecrire

End Sub

Tu reviens sur Excel, tu cliques sur la barre "contrôles" sur le bouton avec
une équerre bleue (pour désactiver le mode création).

Et tu tentes : un clic sur ton bouton doit lancer ta macro...

Bonus, si tu veux changer le texte de ton bouton, tu recliques sur
l'équerre, puis tu cliques-droit sur ton bouton et tu choisis "propriétés".
Dans la ligne Caption tu marques ce que tu veux...

Puis, pour pouvoir réutiliser ton bouton, tu recliques sur l'équerre (tu
bascules de mode création à mode exploitation)

Ca marche Philippe ?

CAP2
Avatar
PhilippeD1
Rebonjour CAP2,

Oups, désolé, avec ton ancien code je pouvais demander : si A1 = 3 et si A2
= 4 alors écrire = 5
Merci...
A +


Bonjour CAP2,

j'ai de la chance que tu m'accordes du temps, je vais essayé d'user sans
abuser.
Avec tes explications ultras-précises, le résultat est parfais; Merci.
J'ai rajouté une macro afin de lancer ta macro ecrire en cliquant dans une
cellule :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$G$17" Then ecrire()
End If
End Sub

VBA m'indique une erreur de compilation ?!?!
As tu la solution...
Promis après cela, je pense que j'aurais acquis suffisament de compétences
pour ne plus venir te relancer.
Merci de me donner envie d'apprendre à utiliser VBA et, Merci de me répondre.
A +


Salut Philippe,

on tente quand même ?

Tu ouvres ton classeur et tu cliques droit sur l'onglet de la feuille en
question, puis tu fais "visualiser le code".
Tu dois voir le code que je t'avais donné au début, tu le supprimes.
Sur la gauche de ton écran, tu as une petite fenêtre dans laquelle tu dois
voir marqué VBA Project avec le nom de ton fichier entre parenthèses...
Tu fais un clic-droit dessus, puis "insertion", puis "module".
Dans la feuille blanche qui apparaît, tu colles le code suivant (en l'ayant
modifié à ta sauce...) :

Sub ecrire()
If [A1] <> "" Then

Select Case [A1]
Case "YZ"
[B1] = 3
Case "AB"
[B1] = 4
End Select

End If
End Sub

Maintenant le code ne se déclenchera plus automatiquement comme je te
l'avais proposé avant, ce sera à toi de le lancer quand tu voudras que
l'écriture auto se fasse. Du coup, tu pourras marquer 4 ou autre chose à la
place de 3, et il ne forcera plus pour marquer 3.

Donc, pour lancer ta macro, à partir d'excel tu fais menu
Outils/Macros/Macros et dans la liste des macros, tu dois avoir notre macro
ecrire. Tu cliques sur "exécuter", et là ton écriture auto se lancera...

Ca marche ?

CAP2







Avatar
CAP2
Alors il faut changer ta macro ecrire :

Sub ecrire
If [A1] <> "" Then

Select Case [A1]
Case "YZ"
[B1] = 3
Case "AB"
[B1] = 4
End Select

If [A1]=3 And [A2]=4 Then
[B1]=5
End If

End If

End Sub

C'est mieux ?

CAP2

"PhilippeD1" a écrit dans le message
de news:
Rebonjour CAP2,

Oups, désolé, avec ton ancien code je pouvais demander : si A1 = 3 et si
A2

= 4 alors écrire = 5
Merci...
A +


Bonjour CAP2,

j'ai de la chance que tu m'accordes du temps, je vais essayé d'user sans
abuser.
Avec tes explications ultras-précises, le résultat est parfais; Merci.
J'ai rajouté une macro afin de lancer ta macro ecrire en cliquant dans
une


cellule :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$G$17" Then ecrire()
End If
End Sub

VBA m'indique une erreur de compilation ?!?!
As tu la solution...
Promis après cela, je pense que j'aurais acquis suffisament de
compétences


pour ne plus venir te relancer.
Merci de me donner envie d'apprendre à utiliser VBA et, Merci de me
répondre.


A +


Salut Philippe,

on tente quand même ?

Tu ouvres ton classeur et tu cliques droit sur l'onglet de la feuille
en



question, puis tu fais "visualiser le code".
Tu dois voir le code que je t'avais donné au début, tu le supprimes.
Sur la gauche de ton écran, tu as une petite fenêtre dans laquelle tu
dois



voir marqué VBA Project avec le nom de ton fichier entre
parenthèses...



Tu fais un clic-droit dessus, puis "insertion", puis "module".
Dans la feuille blanche qui apparaît, tu colles le code suivant (en
l'ayant



modifié à ta sauce...) :

Sub ecrire()
If [A1] <> "" Then

Select Case [A1]
Case "YZ"
[B1] = 3
Case "AB"
[B1] = 4
End Select

End If
End Sub

Maintenant le code ne se déclenchera plus automatiquement comme je te
l'avais proposé avant, ce sera à toi de le lancer quand tu voudras que
l'écriture auto se fasse. Du coup, tu pourras marquer 4 ou autre chose
à la



place de 3, et il ne forcera plus pour marquer 3.

Donc, pour lancer ta macro, à partir d'excel tu fais menu
Outils/Macros/Macros et dans la liste des macros, tu dois avoir notre
macro



ecrire. Tu cliques sur "exécuter", et là ton écriture auto se
lancera...




Ca marche ?

CAP2









Avatar
PhilippeD1
ReBonjour CAP 2,

Je doutes pouvoir un jour t'aider, mais c'est vraiment agréable d'être aidé
par un pro..
Merci, tout fonctionne à la perfection.
Avec mon document et, surtout avec ta collaboration, les utilisateurs de mon
doc. vont gagner du temps.
Chapeau !
Merci
A +



Alors il faut changer ta macro ecrire :

Sub ecrire
If [A1] <> "" Then

Select Case [A1]
Case "YZ"
[B1] = 3
Case "AB"
[B1] = 4
End Select

If [A1]=3 And [A2]=4 Then
[B1]=5
End If

End If

End Sub

C'est mieux ?

CAP2

"PhilippeD1" a écrit dans le message
de news:
Rebonjour CAP2,

Oups, désolé, avec ton ancien code je pouvais demander : si A1 = 3 et si
A2

= 4 alors écrire = 5
Merci...
A +


Bonjour CAP2,

j'ai de la chance que tu m'accordes du temps, je vais essayé d'user sans
abuser.
Avec tes explications ultras-précises, le résultat est parfais; Merci.
J'ai rajouté une macro afin de lancer ta macro ecrire en cliquant dans
une


cellule :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$G$17" Then ecrire()
End If
End Sub

VBA m'indique une erreur de compilation ?!?!
As tu la solution...
Promis après cela, je pense que j'aurais acquis suffisament de
compétences


pour ne plus venir te relancer.
Merci de me donner envie d'apprendre à utiliser VBA et, Merci de me
répondre.


A +


Salut Philippe,

on tente quand même ?

Tu ouvres ton classeur et tu cliques droit sur l'onglet de la feuille
en



question, puis tu fais "visualiser le code".
Tu dois voir le code que je t'avais donné au début, tu le supprimes.
Sur la gauche de ton écran, tu as une petite fenêtre dans laquelle tu
dois



voir marqué VBA Project avec le nom de ton fichier entre
parenthèses...



Tu fais un clic-droit dessus, puis "insertion", puis "module".
Dans la feuille blanche qui apparaît, tu colles le code suivant (en
l'ayant



modifié à ta sauce...) :

Sub ecrire()
If [A1] <> "" Then

Select Case [A1]
Case "YZ"
[B1] = 3
Case "AB"
[B1] = 4
End Select

End If
End Sub

Maintenant le code ne se déclenchera plus automatiquement comme je te
l'avais proposé avant, ce sera à toi de le lancer quand tu voudras que
l'écriture auto se fasse. Du coup, tu pourras marquer 4 ou autre chose
à la



place de 3, et il ne forcera plus pour marquer 3.

Donc, pour lancer ta macro, à partir d'excel tu fais menu
Outils/Macros/Macros et dans la liste des macros, tu dois avoir notre
macro



ecrire. Tu cliques sur "exécuter", et là ton écriture auto se
lancera...




Ca marche ?

CAP2














Avatar
CAP2
Salut Philippe,

en ce qui concerne le pro, il traîne sur ce forum des contributeurs qui le
sont infiniment plus que moi, mais merci beaucoup ;o))

Et n'hésite pas à revenir dès que tu cales sur Excel !

A plus

CAP2