Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
613 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Prog Visual Basic "periodicité"

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Prog Visual Basic "periodicité"

n°1986075
djfonsec77
Posté le 20-04-2010 à 20:45:25  profilanswer
 

Bonjour, je cherche à faire un programme de périodicité sur les 52 semaines dans un tableau sur Excel 2007 avec Visual Basic
 
Tout d'abord, comment faire pour ouvrir une boite de dialogue (UserForm) en cliquant sur une cellule.
 
Ensuite j'aimerais en fonction de la boite de dialogue déplacer cette cellule d'une semaine si tel choix est choisi dans la boite de dialogue ou si l'autre choix est choisi la cellule se déplace de X semaines.
 
En vous remerciant d'avance.
 
 

mood
Publicité
Posté le 20-04-2010 à 20:45:25  profilanswer
 

n°1986235
fab035
Posté le 21-04-2010 à 12:45:59  profilanswer
 

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'
UserForm1.Show
 
End Sub
 
Dans Visual Basic Editor, à toi de créer une form depuis le menu Insertion -> userform
 
Voilà pour le début.

n°1986372
djfonsec77
Posté le 21-04-2010 à 17:16:38  profilanswer
 

Je te remercie mais je me suis débrouillé en faisant un rectangle et en créant une nouvelle macro par contre j'ai un autre problème,
 
j'ai un tableau et le programme que je fais en cliquant sur une cellule se fait sur une ligne, comment faire pour que le même programme se fasse sur les lignes suivantes ?
 
par exemples : je clique sur A1 :  "=A2 + A3" dans la cellule A4 qui se déplace ensuite de "A2" colonnes.
 
Les cellules de clique sont en colonne 1 et j'aimerais faire la même chose pour les lignes B, C, D etc...
 
Biensur le programme est plus compliqué mais c'est juste pour que je me fasse une idée sur la manière de procéder.
 
Merci.

n°1986403
galopin01
Posté le 21-04-2010 à 19:22:21  profilanswer
 

Hum ! Ce qui se conçoit bien s'énonce clairement...
 
Cliquer sur une cellule en VBA ça s'écrit comme ça :
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'on s'assure que le mec il a bien cliqué colonne 1
Set isect = Application.Intersect(Target, Columns(1))
If Not isect Is Nothing Then
    MsgBox "Vous avez cliqué ligne " & Target.Row
End If
End Sub
 
(macro à coller dans le private module de la feuille en question)
 
Pour le reste rien compris à ton problème.
A+
 
PS : Heu... ça sert à quoi qu'on te réponde si tu te débrouilles autrement ?

n°1986454
djfonsec77
Posté le 22-04-2010 à 07:05:10  profilanswer
 

hé bien tout simplement car je ne reste pas planté là à attendre une réponse non plus, je cherche de moi-même sur le logiciel.
 
sinon je te remercie pour le clique de cellule.
 
désolé si l'explication n'était pas très cohérente.
 
En fait après avoir cliqué sur la cellule A1 par exemple le programme que j'ai crée derrière s'execute sur une ligne (ici ligne 1)

n°1986455
djfonsec77
Posté le 22-04-2010 à 07:08:18  profilanswer
 


sorry, j'ai cliqué tros bas,
 
...et ensuite j'aimerais refaire le même programme en cliquant sur la cellule suivante (A2) auquel le programme s'effectuera sur la ligne 2.
 
Etc sur sur les autres lignes.
 
En espérant avoir été plus cohérent.
 
Merci

n°1986457
galopin01
Posté le 22-04-2010 à 07:20:15  profilanswer
 

Bonjour,  
Le programme que je t'ai donné te renvoie le N° de ligne :
Au lieu de renvoyer un MsgBox utilise le N° de ligne comme paramètre pour ta macro.
ça donne :
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'on s'assure que le mec il a bien cliqué colonne 1
Set isect = Application.Intersect(Target, Columns(1))
If Not isect Is Nothing Then
    MaBelleMacro Target.Row
End If
End Sub
 
Sub MaBelleMacro(i%)
MsgBox i
Cells(i, 4).Select
End Sub
 
A+

n°1988191
djfonsec77
Posté le 27-04-2010 à 19:12:16  profilanswer
 

Merci, désolé je suis un novice sur Visual Basic.
 
J'ai d'autres problème si quelqu'un peut m'aider ?
 
- Lorsque je suis sur la cellule active et que je met ma macro (ctrl X) je fais devenir la cellule en vert et lorsque je fais annuler sur ma boite de dialogue j'aimerais que la cellule redevienne de la couleur qu'elle était avant (beige 36).
J'ai essayé If Activecell.Interior.Colorindex: 7 then activecell.Interior.colorindex: 36 sachant que je fais deja Activecell.Interior.Colorindex: 7 lorsque la macro est lancé. mais ca ne fonctionne pas.
 
 
- Ensuite dans ma boite de dialogue j'aimerais mettre en texte dessus ce qu'il y a sur la cellule active. Lorsque j'en crée un il faut que je clique dessus, comment ne pas être obligé de cliquer?
 
- et enfin et il possible de lancer la boite de dialogue directement en cliquant sur la cellule et non pas en se mettant dessus et cliquer sur ctrl X.
 
 
En vous remerciant par avance.

n°1988577
djfonsec77
Posté le 29-04-2010 à 07:21:55  profilanswer
 

Personne n'a d'idée?
Merci d'avance

n°1989608
djfonsec77
Posté le 03-05-2010 à 10:24:15  profilanswer
 

Merci quand même, je me suis débrouillé et résolu mes problème avec l'aide d'autres personne.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Prog Visual Basic "periodicité"

 

Sujets relatifs
ide pour le BasicVisual Basic 8 est internet...
sql / visual studio[Visual C++ / Qt / OpenGL] LNK2001 : unresolved external symbol
A SUPPRIMER MERCIAjouter les classes Qt de Network dans Visual Studio
[Basic] Programmation d'un robot, demande de confirmationViens voter pour la plus rebelle des mèches de prog!
Plus de sujets relatifs à : Prog Visual Basic "periodicité"


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR