Ne comprend pas ce code!!!  Sujet résolu

Pour toutes vos questions à propos d'Excel ...

Ne comprend pas ce code!!!  Sujet résolu

Messagepar kris0311 » 19 Août 2009, 09:37

Bonjour à tous,

Mon souci est que je ne connai pas du tout le "systeme" pour coder sous visual basic editor, j'ai certe essayer mais sans résultat!
Ou me faut-il ecrire le code puis est-ce à partir de ma feuille1 ou 2?

car quand j'ai essayer, et, que j'ai ecrit mon code en voulant l'executer, ca m'ouvrait une autre fenetre nommée Module1(par défaut je pense) avec ce meme code, et donc je me retrouve avec 2 fenetres contenant le meme code.

Ce que j'aimerait savoir donc :D , c'est comment accéder a la bonne fenetre pour coder!

Merci. :oops:
Dernière édition par kris0311 le 21 Août 2009, 08:17, édité 2 fois.
kris0311
Membre fidèle
 
Messages: 175
Inscription: 30 Juil 2009, 08:19
Version Excel: 2003 FR

Messagepar kris0311 » 19 Août 2009, 10:40

normalement ce conde est bon non?

Il est ecrit dans le code de la feuil1

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Feuil2.Range(A4) = " " Then
Feuil1.Range(A4) = " "
End If
End Sub

Pourquoi cela ne marche pas?
kris0311
Membre fidèle
 
Messages: 175
Inscription: 30 Juil 2009, 08:19
Version Excel: 2003 FR

Messagepar Nad-Dan » 19 Août 2009, 10:44

Bonjour,

Clique droite sur l'onglet puis "visualiser le code" te permet de faire un code qui sera actif pour les actions à effectuer dans la feuille.

Si tu enregistres ta macro via l'enregistreur automatique (Outils / Macro / Nouvelle Macro), le code sera enregistré dans un module.
Tu peux aussi créer un module en VBA par toi même comme ceci :
- ALT + F11 pour aller dans VBA
- Insertion / Module pour afficher une fenêtre vide te permettant de completer.

Sache que tu peux toujours coder dans un module et appeler un code depuis un autre code se trouvant dans ta feuille. C'est le mieux à faire d'ailleurs.

Amicalement

Dan
Nad-Dan
Modérateur
 
Messages: 7309
Inscription: 27 Avr 2007, 15:30
Localisation: Nad à Dax (France) - Dan à Liège (Belgique)
Version Excel: 2003 FR-2007 FR-MAC 2004 FR

Messagepar kris0311 » 19 Août 2009, 11:07

Oui ca je sais comment faire pour y aller.

En ecrivant mon code dans le module bien qu'il soit correct (enfin il me semble) rien ne se passe?
kris0311
Membre fidèle
 
Messages: 175
Inscription: 30 Juil 2009, 08:19
Version Excel: 2003 FR

Messagepar Nad-Dan » 19 Août 2009, 11:57

re,

Normal qu'il ne fonctionne pas car :
- Quelques erreurs de code
- tu places ce code dans un module alors qu'il doit être placé dans la feuille 2.

Pour t'expliquer :
Les macros PRIVATE sont placées dans les feuilles. Les macro SUB (PUBLIC SUB) sont placées dans un module et exécutées via un bouton ou un appel d'une autre macro.

Donc clique droite sur la feuille 2 puis place ton code corrigé :
Code: Tout sélectionner
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("A4") = "" Then Sheets("Feuil1").Range("A4") = ""
End Sub


Amicalement

Dan :wink:

PS :
Si tu veux placer ce code dans la feuille 1, change "feuil1" par "feuil2"
Nad-Dan
Modérateur
 
Messages: 7309
Inscription: 27 Avr 2007, 15:30
Localisation: Nad à Dax (France) - Dan à Liège (Belgique)
Version Excel: 2003 FR-2007 FR-MAC 2004 FR

Messagepar kris0311 » 19 Août 2009, 13:59

Merci Dan!

Mais biensur quand une chose marche d'autres chose ne vont pas!!! lol
Donc en fait maintenant quand je laisse ma combox de ma feuil2 vide, la cellule de ma feuil1 est vide, ca c'est bon :wink:
mais si je choisi quelque chose dans ma combobox et que donc je la remplie, ma cellule de la feuil1 reste vide, ca moins bien lol :?

Une idée du pourquoi?
kris0311
Membre fidèle
 
Messages: 175
Inscription: 30 Juil 2009, 08:19
Version Excel: 2003 FR

Messagepar kris0311 » 19 Août 2009, 14:04

Et a chaque fois que j'execute le code(que tu ma passé) ca m'ouvre une autre fenetre Module1, me faut-il écrire quelque chose entre ce qui suit?

Sub test()

End Sub
kris0311
Membre fidèle
 
Messages: 175
Inscription: 30 Juil 2009, 08:19
Version Excel: 2003 FR

Messagepar Nad-Dan » 19 Août 2009, 14:36

re,

Tu parles de combo. Là c'est moins clair par rapport au code.

Il s'agit d'une liste déroulante en A4 et dans quelle feuille ? Explique mieux ce que tu cherches à faire.

A te relire

Dan
Nad-Dan
Modérateur
 
Messages: 7309
Inscription: 27 Avr 2007, 15:30
Localisation: Nad à Dax (France) - Dan à Liège (Belgique)
Version Excel: 2003 FR-2007 FR-MAC 2004 FR

Messagepar kris0311 » 19 Août 2009, 14:48

J'ai ma feuil2 ou j'ai une comboBox et quand je choisi un truk de la liste ca me l'ecrit dans une cellule de ma feuil1, ca j'y arrive.
Mais le probleme est que si je veux laisser la comboBox vide ca me marque un "0" dans la cellule de la feuil1, et moi j'aimerai qu'elle soit vide.

je te joins un fichier au cas ou j'expliquerai pas trop bien!

http://www.excel-pratique.com/~files/do ... _osmoz.xls
kris0311
Membre fidèle
 
Messages: 175
Inscription: 30 Juil 2009, 08:19
Version Excel: 2003 FR

Messagepar Nad-Dan » 19 Août 2009, 15:06

Re,

Merci de tes précisions. C'est plus clair.
On fait autrement.
Chaque fois que tu complètes ta colonne A en feuille 2, cela inscrira la même chose dans la feuille 1. Iden si tu supprimes une donnée de la feuille 2.
Code à placer dans la feuille 2 :
Code: Tout sélectionner
Private Sub Worksheet_Change(ByVal Target As Range)
'Macro Dan pour Kris0311 le 19/08/09
'http://forum.excel-pratique.com/viewtopic.php?t=12870
If Target.Column > 1 Then Exit Sub
If Not Intersect(Target, Range("A2:A" & Range("A65536").End(xlUp).Row + 1)) Is Nothing Then
Sheets("Feuil1").Range(Target.Address) = Target
End If
End Sub

Amicalement

Dan
Nad-Dan
Modérateur
 
Messages: 7309
Inscription: 27 Avr 2007, 15:30
Localisation: Nad à Dax (France) - Dan à Liège (Belgique)
Version Excel: 2003 FR-2007 FR-MAC 2004 FR

Suivante

Retourner vers Excel - VBA

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Google [Bot] et 6 invités