thierry234
Nouveau membre
Bonjour,
Ça fait maintenant deux jours que je parcours internet en espérant obtenir des réponses et m'aider à monter un programme en VBA que je dois réaliser dans le cadre d'un stage (malheureusement sans aucun encadrement pour me venir en aide >_>)
Bref, le topo : je dois monter une partie de logiciel qui gère un planning des visites à venir à partir d'une base Access.
J'ai choisi de le faire par Excel (je pense que c'est plus simple), et j'ai donc monté une source de données OCBD pour récupérer la base de données sous Excel.
Je vous présente maintenant la manière dont j'ai pensé mon code :
Un bouton sur le programme Access permet de fermer la bdd et d'ouvrir Excel ;
A l'ouverture du tableur, une boite de dialogue s'ouvre :
Elle permet d'actualiser la base par rapport à l'OCBD ;
Ensuite, une fois fermée, le menu principal apparaît :
Je pense qu'il est facile de comprendre le principe avec ce screen.
Ce qui m'intéresse c'est le textbox en bas, et on arrive au problème !
En fait je veux appeler depuis le tableur des contenus de cellules, que je concatènerai ensuite pour correspondre au schéma des label au-dessus du textbox.
Comme j'ai une même plage de données qui va servir aux 4 boutons, j'ai des filtres qui se déclenchent à chaque fois qu'un bouton (ce sont des TB) est activé ; ça, ça marche a priori.
Là où je bloque, c'est pour appeler des données cellule après cellule en éliminant les cellules vides. Voilà le code que j'ai actuellement pour le premier bouton :
Ce code fonctionne, mais il n'est attribué qu'à une ligne fixe ! (la 180)
Je n'arrive pas à faire la même chose pour la plage entière, quoique j'essaye ça bug.
Et je n'arrive pas non plus à faire apparaître et disparaitre ces donnée en fontion de l'état du ToggleButton =(
J'ai essayé un bon paquet de solutions, mais comme j'apprends le vba sur le tas sans vraiment de connaissance c'est la grosse galère !
Voilà, si quelqu'un peut me filer un coup de main, ça pourrait bien sauver mon stage !
Si besoin de renseignements complémentaires, n'hésitez pas à demander j'essaierai de vous répondre au mieux ! Merci !
Edit : J'ai dit une bêtise, la première partie du code marche, la partie Else fonctionne, mais pas le reste ! :\
Ça fait maintenant deux jours que je parcours internet en espérant obtenir des réponses et m'aider à monter un programme en VBA que je dois réaliser dans le cadre d'un stage (malheureusement sans aucun encadrement pour me venir en aide >_>)
Bref, le topo : je dois monter une partie de logiciel qui gère un planning des visites à venir à partir d'une base Access.
J'ai choisi de le faire par Excel (je pense que c'est plus simple), et j'ai donc monté une source de données OCBD pour récupérer la base de données sous Excel.
Je vous présente maintenant la manière dont j'ai pensé mon code :
Un bouton sur le programme Access permet de fermer la bdd et d'ouvrir Excel ;
A l'ouverture du tableur, une boite de dialogue s'ouvre :
Vous devez être connecté pour voir les liens.
Elle permet d'actualiser la base par rapport à l'OCBD ;
Ensuite, une fois fermée, le menu principal apparaît :
Vous devez être connecté pour voir les liens.
Je pense qu'il est facile de comprendre le principe avec ce screen.
Ce qui m'intéresse c'est le textbox en bas, et on arrive au problème !
En fait je veux appeler depuis le tableur des contenus de cellules, que je concatènerai ensuite pour correspondre au schéma des label au-dessus du textbox.
Comme j'ai une même plage de données qui va servir aux 4 boutons, j'ai des filtres qui se déclenchent à chaque fois qu'un bouton (ce sont des TB) est activé ; ça, ça marche a priori.
Là où je bloque, c'est pour appeler des données cellule après cellule en éliminant les cellules vides. Voilà le code que j'ai actuellement pour le premier bouton :
Code:
Private Sub ToggleButton1_Click()
'
' Permet le filtre des visites à 7 jours
Range("G112:G266").Select
ActiveWindow.SmallScroll Down:=-72
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="<=7", Operator:=xlAnd
' Affichage dans le textbox
Dim cell As Range
For Each cell In Range("G113:G200")
If cell = "" Then
TextBox1.Text = ""
Else: TextBox1.Text = Range("J180").Value & " " & Range("K180").Value & " " & "heures" & " " & Range("L180").Value
End If
Next cell
End Sub
Ce code fonctionne, mais il n'est attribué qu'à une ligne fixe ! (la 180)
Je n'arrive pas à faire la même chose pour la plage entière, quoique j'essaye ça bug.
Et je n'arrive pas non plus à faire apparaître et disparaitre ces donnée en fontion de l'état du ToggleButton =(
J'ai essayé un bon paquet de solutions, mais comme j'apprends le vba sur le tas sans vraiment de connaissance c'est la grosse galère !
Voilà, si quelqu'un peut me filer un coup de main, ça pourrait bien sauver mon stage !
Si besoin de renseignements complémentaires, n'hésitez pas à demander j'essaierai de vous répondre au mieux ! Merci !
Edit : J'ai dit une bêtise, la première partie du code marche, la partie Else fonctionne, mais pas le reste ! :\