besoin d'aide bouton pour ouvrir feuil

olivier63

XLDnaute Nouveau
bonsoir,
je débute sur EXCEL2007 et je voudrais savoir s'il est possible de créer un bouton pour ouvrir une feuil du classeur ??

exemple : j'ai créer un classeur avec 7 feuil dont la 1 ère feuil je l'ai nommé "page d'accueil"
je voudrais à partir de cette "page d'accueil" ouvrir la feuil choisi et du coup effacer tout les onglets de mon classeur.

merci pour votre aide.
 

JNP

XLDnaute Barbatruc
Re : besoin d'aide bouton pour ouvrir feuil

Bonjour Olivier63 et bienvenue :),
Oui, c'est possible, mais si tu débutes, as-tu des notions de VBA, car il va falloir passer par de la programmation pour changer de feuille et masquer les autres (sans oublier de démasquer à la fermeture du fichier...).
A te lire :cool:
 

olivier63

XLDnaute Nouveau
Re : besoin d'aide bouton pour ouvrir feuil

bonjour JNP

bien je connais un petit peu VBA car sur les feuilles j'ai créer des formulaires de saisies par VBA

et ça marche surper bien

du coup je sais créer les boutons commande sur VBA mais c'est dans la programmation des boutons que je coince car je connais pas assez le language VBA pour les faires fonctionner et ça là que j'ai besaoin d'aide.

:):)
 

JNP

XLDnaute Barbatruc
Re : besoin d'aide bouton pour ouvrir feuil

Re :),
Le mieux dans ces cas-là, c'est d'utiliser l'enregistreur de macro, ça fourni souvent la syntaxe de base nécessaire ;).
Quelque pistes :
Pour ton bouton
Code:
Sub Bouton1_Clic()
Sheets("Feuil2").Visible = xlSheetVisible
Sheets("Feuil2").Select
Sheets("Accueil").Visible = xlSheetHidden
End Sub
Dans ThisWorkbook
Code:
Dim Feuille As Worksheet
Private Sub Workbook_BeforeClose(Cancel As Boolean)
For Each Feuille In ThisWorkbook.Worksheets
Feuille.Visible = xlSheetVisible
Next
ThisWorkbook.Save
End Sub
Private Sub Workbook_Open()
Sheets("Accueil").Select
On Error Resume Next
For Each Feuille In ThisWorkbook.Worksheets
If Feuille.Name <> "Accueil" Then
Feuille.Visible = xlSheetHidden
End If
Next
On Error GoTo 0
End Sub
Exemple joint.
Bon courage :cool:
 

Pièces jointes

  • Masquage.xlsm
    17.5 KB · Affichages: 140

olivier63

XLDnaute Nouveau
Re : problème résolu

merci JPN :)

extra ton aide car ça marche

j'ai réussi à tout faire comme je voulais et c'est génial

jai pas finit mes tableaux mais j'aimerai bien te l'envoyer pour que tu vois si j'ai bien tout fait correctement .

je peux pas le mettre sur le site il est 3 fois trop gros

meme en le compressant il reste encore trop gros

dommage pour moi

je te remerice encore beaucoup de ton aide
et je pense en avoir encore besoin
trés bientôt
 
Dernière édition:

olivier63

XLDnaute Nouveau
Re : besoin d'aide bouton pour ouvrir feuil

dans mon programme je voudrais que mon bouton "quitter" ferme mon classeur et je n'arrive pas à écrire la macro pour ça

quel est le terme qui designe le classeur en laguage macro ?

une question simple je voudrais masquer la colonne excel et la ligne excel du tableau est ce possible ?

je voudrais aussi mettre le classeur en pleine page des l'ouverture du classeur par une macro.

bref je coince un petit peu sur pas grand chose mais je suis coincé

merci
;););):):):):):)
 

wilplan

XLDnaute Nouveau
Re : besoin d'aide bouton pour ouvrir feuil

Bonsoir Olivier,

si j'ai bien compris pour faire apparaitre en plein écran il te faut faire:

Application.DisplayFullScreen (à coller dans le ThisWorbook pour l'avoir dès l'ouverture)

pour la colonne et la ligne excel du tableau, je pense que tu parles des entêtes de lignes et de colonnes auxquels cas il te faut inscrire:

ActiveWindow.DisplayHeadings=False

En espérant que celà puisse t'aider

cordialement
 

olivier63

XLDnaute Nouveau
Re : besoin d'aide bouton pour ouvrir feuil

:):):)

merci WILPLAN pour tes réponses

je vais essayé demain car là je travail encore sur les tableaux en VBA

sinon pour les entetes des colonnes et lignes j'ai toruvé une solution encore plus simple dans le bouton office d'excel sous "option avancés" et j'ai trouvé une partie de mes réponses aussi

pour le full écran je te le dirai demain si sa marche

il me reste un petit probleme c'est la macro de mon bouton fermeture de classeur je n'arrive pas à écrire la formule correct pour faire marcher mon bouton peux tu m'aider s'il te plait ???

:):):):)
 

wilplan

XLDnaute Nouveau
Re : besoin d'aide bouton pour ouvrir feuil

Bonjour Olivier, le Forum,

Désolé pour la fermeture de ton classeur, mais j'ai le même souci donc si tu trouves la solution je suis preneur.
Je ne m'étais pas encore aventuré sous les options avancés d'excel, c'est top , merci du tuyau

bonne journée
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : besoin d'aide bouton pour ouvrir feuil

Re :),
Pour fermer le classeur contenant la macro
Code:
ThisWorkbook.Close
qui peut être agrémenté d'un SaveChanges:=False si on ne veux pas enregistrer les modifications,
Code:
ThisWorkbook.Close SaveChanges:=True
pour l'enregistrer, ou on peut mettre
Code:
ThisWorkbook.Save
avant de façon à forcer l'enregistrement, etc ;).
Si c'est le classeur actif qu'on veut fermer, on utilisera ActiveWorkbook.
Esthétiquement, il peut être intérressant de fermer Excel, à condition que seul le classeur actif soit ouvert
Code:
If Workbooks.Count = 1 Then Application.Quit
Avec tout ça, tu dois pouvoir faire :p...
Bon courage :cool:
 

olivier63

XLDnaute Nouveau
Re : besoin d'aide bouton pour ouvrir feuil

:);):);)

merci JPN pour ton grand aide qui m'a permis de finir mon classeur

sinon je voudrais savoir s'il étais possible de créer un USERFORMS de saisie de données et d'enregistrer sous condition soit sur une Feuil A ou une feul B ou une feuil C selon un choix dans une cellule de saisie

avec des IF ?

exemple j'ai créer une page de consommation pour la voiture et j'ai créer un USERFORMS de saisie je voudrais que selon le type de carburant enregistrer la saisie soit dans la feuil ess ou feuil go ou feuil gpl voici ce que j'ai écris dans le VBA

Private Sub cmdvalider_Click()

Dim numlignevide As Integer

'on verifie le champ select carburant pour choisir la feuil de sauvegarde
If txtcarburant.Text = "ESSENCE" Then
'on active la feuille "essence"
Worksheets("essence").Activate

If txtcarburant.Text = "GASOIL" Then
'on active la feuille "gasoil"
Worksheets("gasoil").Activate

If txtcarburant.Text = "GPL" Then
'on active la feuille "GPL"
Worksheets("GPL").Activate

ElseIf txtcarburant.Text = "" Then
MsgBox "Veuillez choisir votre carburant s'il vous plait", vbExclamation, " ---> CHAMP MANQUANT <--- "

txtcarburant.SetFocus

ElseIf txtdate.Text = "" Then
MsgBox "Veuillez remplir le champ date s'il vous plait", vbExclamation, " ---> CHAMP MANQUANT <--- "

txtdate.SetFocus
Else

'on trouve la derniere ligne vide du tableau et on enregistre le numero de la ligne dans la variable numlignevide
numlignevide = ActiveSheet.Columns(2).Find("").Row

'on verifie que les champs obligatoires sont correctement remplis


'on remplit les données dans notre tableau
ActiveSheet.Cells(numlignevide, 2) = txtdate.Text
ActiveSheet.Cells(numlignevide, 3) = UCase(txtstation.Text)
ActiveSheet.Cells(numlignevide, 4) = txtlieu.Text
ActiveSheet.Cells(numlignevide, 5) = txtkms.Text
ActiveSheet.Cells(numlignevide, 7) = txtlitres.Text
ActiveSheet.Cells(numlignevide, 10) = txtcout.Text

'on efface le formulaire et on replace le curseur sur le premier champs date

txtdate.Text = ""
txtstation.Text = ""
txtlieu.Text = ""
txtkms.Text = ""
txtlitres.Text = ""
txtcout.Text = ""
txtdate.SetFocus

End If
End If
End If


End Sub


pourais tu voire ce qui ne vas pas et m'expliquer pourquoi ?

merci
:):):)
 

JNP

XLDnaute Barbatruc
Re : besoin d'aide bouton pour ouvrir feuil

Re :),
L'utilisation des If et ElseIf est un peu aproximative, et comme tu ne sors pas de la Sub pour les manquants...
Voici ton code modifié comme il me paraitrait plus plausible, sans garantie vu que je n'ai pas ton fichier pour tester...
Code:
Private Sub cmdvalider_Click()
Dim numlignevide As Integer[COLOR=red], Feuille As Worksheet ' Je déclare une variable[/COLOR]
[COLOR=red]' feuille qui m'évitera les Activate[/COLOR]
[COLOR=red]' On commence par vérifier les champs manquants (il en manque...)[/COLOR]
If txtcarburant.Text = "" Then
MsgBox "Veuillez choisir votre carburant s'il vous plait", vbExclamation, " ---> CHAMP MANQUANT <--- "
txtcarburant.SetFocus
[COLOR=red]Exit Sub ' On oublie pas de sortir de la Sub[/COLOR]
End If
If txtdate.Text = "" Then
MsgBox "Veuillez remplir le champ date s'il vous plait", vbExclamation, " ---> CHAMP MANQUANT <--- "
txtdate.SetFocus
[COLOR=red]Exit Sub ' On oublie pas de sortir de la Sub[/COLOR]
End If
'on verifie le champ select carburant pour choisir la feuil de sauvegarde
[COLOR=red]Select Case txtcarburant.Text ' Je préfère Select Case aux ElseIf[/COLOR]
[COLOR=red]Case "ESSENCE" ' Attention à ce que ton Combo soit limité à ces 3 valeurs[/COLOR]
[COLOR=#ff0000]' et dans la même casse[/COLOR]
[COLOR=red]Feuille = Sheets("essence")[/COLOR]
[COLOR=red]Case "GASOIL"[/COLOR]
[COLOR=red]Feuille = Sheets("gasoil")[/COLOR]
[COLOR=red]Case "GPL"[/COLOR]
[COLOR=red]Feuille = Sheets("GPL")[/COLOR]
[COLOR=red]End Select[/COLOR]
'on trouve la derniere ligne vide du tableau et on enregistre le numero de la ligne dans la variable numlignevide
numlignevide = Feuille.Columns(2).Find("").Row [COLOR=red]' Original, mais ça doit marcher[/COLOR]
'on remplit les données dans notre tableau
[COLOR=red]With Feuille ' Plus lisible[/COLOR]
.Cells(numlignevide, 2) = txtdate.Text
.Cells(numlignevide, 3) = UCase(txtstation.Text)
.Cells(numlignevide, 4) = txtlieu.Text
.Cells(numlignevide, 5) = txtkms.Text
.Cells(numlignevide, 7) = txtlitres.Text
.Cells(numlignevide, 10) = txtcout.Text
[COLOR=red]End With[/COLOR]
'on efface le formulaire et on replace le curseur sur le premier champs date
txtdate.Text = ""
txtstation.Text = ""
txtlieu.Text = ""
txtkms.Text = ""
txtlitres.Text = ""
txtcout.Text = ""
txtdate.SetFocus
End Sub
Bon courage :cool:
 

Discussions similaires

Réponses
0
Affichages
291

Statistiques des forums

Discussions
312 496
Messages
2 088 974
Membres
103 995
dernier inscrit
Flodk