Sous Access 2000, j'ai un formulaire avec un groupe d'option (Cadre1). Le
choix de ce groupe d'option est récupérer dans une zone de texte (Valeur).
En fonction de cette valeur, je souhaite qu'une donnée soit envoyé dans un
classeur Excel après l'appui sur un bouton. Le problème est qu'aucune donnée
n'apparait dans mon classeur Classeur1 et que celui-ci devient en lecture
seule car il est utilisé par Access.
Mon code fonctionnait bien lorsqu'il n'y avait pas le switch. Voici son état
actuel:
Private Sub Commande0_Click()
Dim XL_App As New Excel.Application
Dim XL_Classeur As Object
Dim XL_Feuille As Object
With XL_App
Set XL_Classeur = .Workbooks.Open("C:\Classeur1.xls")
Set XL_Feuille = XL_Classeur.Sheets("Avril 2003")
With XL_Feuille
Me!Cadre1 = Switch( _
Me![Valeur] = 1, (.Range("A1").Value = "O"), _
Me![Valeur] = 2, (.Range("A2").Value = "X"))
End With
.ActiveWorkbook.Save
.ActiveWorkbook.Close
.Quit
End With
Set XL_App = Nothing
Set XL_Classeur = Nothing
Set XL_Feuille = Nothing
End Sub
Voilà, j'espère que je me suis bien exprimé. Je suis ouvert à toutes
tentatives d'aide.
Merci d'avance
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred Pasc
J'ai finalement réussi mais j'ai remplacé le switch par un select case qui lui fonctionne.
Voici donc mon code :
Private Sub Commande0_Click() Dim XL_App As New Excel.Application Dim XL_Classeur As Object Dim XL_Feuille As Object With XL_App Set XL_Classeur = .Workbooks.Open("C:Documents and Settingsstagiaire2Mes documentsStage Informatique M.PascassioProjet PrincipalTest de BDGrilleLOTOClasseur5.xls") Set XL_Feuille = XL_Classeur.Sheets("Avril 2003") With XL_Feuille Select Case Me!Valeur ' Évalue le nombre aléatoire. Case 1: .Range("A1").Value = "" Case 2: .Range("A2").Value = "X" Case 0: Exit Sub End Select End With .ActiveWorkbook.Save .ActiveWorkbook.Close .Quit End With Set XL_App = Nothing Set XL_Classeur = Nothing Set XL_Feuille = Nothing End Sub
Petite question supplémentaire cependant, comment je peux faire pour dire, si le choix est 1 mettre A dans la case 1 et B dans la case 2. En gros, je veux faire :
Case 2: .Range("A2").Value = "X" , .Range("A1").Value = ""
J'ai essayé et cela il n'en veux pas ! Merci de m'aider. A+ Fred
"Fred Pasc" a écrit dans le message de news: d6smca$1dj$
Bonjour,
Sous Access 2000, j'ai un formulaire avec un groupe d'option (Cadre1). Le choix de ce groupe d'option est récupérer dans une zone de texte (Valeur). En fonction de cette valeur, je souhaite qu'une donnée soit envoyé dans un classeur Excel après l'appui sur un bouton. Le problème est qu'aucune donnée
n'apparait dans mon classeur Classeur1 et que celui-ci devient en lecture seule car il est utilisé par Access. Mon code fonctionnait bien lorsqu'il n'y avait pas le switch. Voici son état
actuel:
Private Sub Commande0_Click() Dim XL_App As New Excel.Application Dim XL_Classeur As Object Dim XL_Feuille As Object With XL_App Set XL_Classeur = .Workbooks.Open("C:Classeur1.xls") Set XL_Feuille = XL_Classeur.Sheets("Avril 2003") With XL_Feuille Me!Cadre1 = Switch( _ Me![Valeur] = 1, (.Range("A1").Value = "O"), _ Me![Valeur] = 2, (.Range("A2").Value = "X")) End With .ActiveWorkbook.Save .ActiveWorkbook.Close .Quit End With Set XL_App = Nothing Set XL_Classeur = Nothing Set XL_Feuille = Nothing End Sub
Voilà, j'espère que je me suis bien exprimé. Je suis ouvert à toutes tentatives d'aide. Merci d'avance
A+ Fred
J'ai finalement réussi mais j'ai remplacé le switch par un select case qui
lui fonctionne.
Voici donc mon code :
Private Sub Commande0_Click()
Dim XL_App As New Excel.Application
Dim XL_Classeur As Object
Dim XL_Feuille As Object
With XL_App
Set XL_Classeur = .Workbooks.Open("C:Documents and
Settingsstagiaire2Mes documentsStage Informatique M.PascassioProjet
PrincipalTest de BDGrilleLOTOClasseur5.xls")
Set XL_Feuille = XL_Classeur.Sheets("Avril 2003")
With XL_Feuille
Select Case Me!Valeur ' Évalue le nombre aléatoire.
Case 1: .Range("A1").Value = ""
Case 2: .Range("A2").Value = "X"
Case 0: Exit Sub
End Select
End With
.ActiveWorkbook.Save
.ActiveWorkbook.Close
.Quit
End With
Set XL_App = Nothing
Set XL_Classeur = Nothing
Set XL_Feuille = Nothing
End Sub
Petite question supplémentaire cependant, comment je peux faire pour dire,
si le choix est 1 mettre A dans la case 1 et B dans la case 2.
En gros, je veux faire :
Case 2: .Range("A2").Value = "X" , .Range("A1").Value = ""
J'ai essayé et cela il n'en veux pas !
Merci de m'aider.
A+
Fred
"Fred Pasc" <drefN64@hotmail.com> a écrit dans le message de news:
d6smca$1dj$1@s1.news.oleane.net...
Bonjour,
Sous Access 2000, j'ai un formulaire avec un groupe d'option (Cadre1). Le
choix de ce groupe d'option est récupérer dans une zone de texte (Valeur).
En fonction de cette valeur, je souhaite qu'une donnée soit envoyé dans un
classeur Excel après l'appui sur un bouton. Le problème est qu'aucune
donnée
n'apparait dans mon classeur Classeur1 et que celui-ci devient en lecture
seule car il est utilisé par Access.
Mon code fonctionnait bien lorsqu'il n'y avait pas le switch. Voici son
état
actuel:
Private Sub Commande0_Click()
Dim XL_App As New Excel.Application
Dim XL_Classeur As Object
Dim XL_Feuille As Object
With XL_App
Set XL_Classeur = .Workbooks.Open("C:Classeur1.xls")
Set XL_Feuille = XL_Classeur.Sheets("Avril 2003")
With XL_Feuille
Me!Cadre1 = Switch( _
Me![Valeur] = 1, (.Range("A1").Value = "O"), _
Me![Valeur] = 2, (.Range("A2").Value = "X"))
End With
.ActiveWorkbook.Save
.ActiveWorkbook.Close
.Quit
End With
Set XL_App = Nothing
Set XL_Classeur = Nothing
Set XL_Feuille = Nothing
End Sub
Voilà, j'espère que je me suis bien exprimé. Je suis ouvert à toutes
tentatives d'aide.
Merci d'avance
J'ai finalement réussi mais j'ai remplacé le switch par un select case qui lui fonctionne.
Voici donc mon code :
Private Sub Commande0_Click() Dim XL_App As New Excel.Application Dim XL_Classeur As Object Dim XL_Feuille As Object With XL_App Set XL_Classeur = .Workbooks.Open("C:Documents and Settingsstagiaire2Mes documentsStage Informatique M.PascassioProjet PrincipalTest de BDGrilleLOTOClasseur5.xls") Set XL_Feuille = XL_Classeur.Sheets("Avril 2003") With XL_Feuille Select Case Me!Valeur ' Évalue le nombre aléatoire. Case 1: .Range("A1").Value = "" Case 2: .Range("A2").Value = "X" Case 0: Exit Sub End Select End With .ActiveWorkbook.Save .ActiveWorkbook.Close .Quit End With Set XL_App = Nothing Set XL_Classeur = Nothing Set XL_Feuille = Nothing End Sub
Petite question supplémentaire cependant, comment je peux faire pour dire, si le choix est 1 mettre A dans la case 1 et B dans la case 2. En gros, je veux faire :
Case 2: .Range("A2").Value = "X" , .Range("A1").Value = ""
J'ai essayé et cela il n'en veux pas ! Merci de m'aider. A+ Fred
"Fred Pasc" a écrit dans le message de news: d6smca$1dj$
Bonjour,
Sous Access 2000, j'ai un formulaire avec un groupe d'option (Cadre1). Le choix de ce groupe d'option est récupérer dans une zone de texte (Valeur). En fonction de cette valeur, je souhaite qu'une donnée soit envoyé dans un classeur Excel après l'appui sur un bouton. Le problème est qu'aucune donnée
n'apparait dans mon classeur Classeur1 et que celui-ci devient en lecture seule car il est utilisé par Access. Mon code fonctionnait bien lorsqu'il n'y avait pas le switch. Voici son état
actuel:
Private Sub Commande0_Click() Dim XL_App As New Excel.Application Dim XL_Classeur As Object Dim XL_Feuille As Object With XL_App Set XL_Classeur = .Workbooks.Open("C:Classeur1.xls") Set XL_Feuille = XL_Classeur.Sheets("Avril 2003") With XL_Feuille Me!Cadre1 = Switch( _ Me![Valeur] = 1, (.Range("A1").Value = "O"), _ Me![Valeur] = 2, (.Range("A2").Value = "X")) End With .ActiveWorkbook.Save .ActiveWorkbook.Close .Quit End With Set XL_App = Nothing Set XL_Classeur = Nothing Set XL_Feuille = Nothing End Sub
Voilà, j'espère que je me suis bien exprimé. Je suis ouvert à toutes tentatives d'aide. Merci d'avance