1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mars 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2017
    Messages : 20
    Points : 9
    Points
    9

    Par défaut Gestion des feuilles Excel

    Bonjour,

    Débutant en programmation, je m'atèle actuellement à développé pour un collègue une petite application afin de facilité son travail dans la création d'OF.
    Dans cette application j'utilise plusieurs classeur Excel: Un classeur comprenant le modèle d'OF vierge, Un classeur comprenant toute les options, type de machine etc.
    Dans l'un de ces classeurs j'ai besoin de lire deux feuilles différentes.
    Une pour les options dites communes au différentes machines et une autre qui diffèrent selon la taille de la machine.

    J'ai donc testé cette solution pour choisir la deuxième feuille voulu mais ça ne fonctionne pas quelqu'un aurait il une idée ?

    Ci-dessous je vous met l'extrait comprenant le classeur qui me pose problème affilié à la variable "KitSal".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Dim xls As Excel.Application 
     Dim OF2 As Excel.Workbook 
     Dim ListeKit As Excel.Workbook 
     Dim AUTO As Excel.Worksheet 
     Dim Kitcommun As Excel.Worksheet 
     Dim KitSal As Excel.Worksheet 
     
     xls = CreateObject("Excel.Application") 
     OF2 = xls.Workbooks.Open(My.Settings.cheminOF) 
     AUTO = OF2.Worksheets(1) 
     ListeKit = xls.Workbooks.Open(My.Settings.cheminKit) 
     Kitcommun = ListeKit.Worksheets(1) 
     
     If Capacité.Text = "1m³" Then           'feuille excel corresepondant à la taille' 
     KitSal = ListeKit.Worksheets(2) 
     ElseIf Capacité.Text = "1,5m³" Then 
     KitSal = ListeKit.Worksheets(3) 
     ElseIf Capacité.Text = "2m³" Then 
     KitSal = ListeKit.Worksheets(4) 
     ElseIf Capacité.Text = "3m³" Then 
     KitSal = ListeKit.Worksheets(5) 
     ElseIf Capacité.Text = "4m³" Then 
     KitSal = ListeKit.Worksheets(6) 
     ElseIf Capacité.Text = "5m³" Then 
     KitSal = ListeKit.Worksheets(7) 
     ElseIf Capacité.Text = "6m³" Then 
     KitSal = ListeKit.Worksheets(8) 
     ElseIf Capacité.Text = "7m³" Then 
     KitSal = ListeKit.Worksheets(9) 
     ElseIf Capacité.Text = "8m³" Then 
     KitSal = ListeKit.Worksheets(10) 
     Else 
     MsgBox("Veuillez renseigner la capacité.", MsgBoxStyle.OkOnly, "Erreur") 
     OF2.Close(False) 
     ListeKit.Close(False) 
     xls.Quit() 
     Exit Sub 
     End If

  2. #2
    Membre averti Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    août 2014
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : août 2014
    Messages : 220
    Points : 382
    Points
    382

    Par défaut

    Salut,
    Quel est le message d'erreur lors de la déclaration de ta variable "kitsal" ?
    Merci de ainsi que d'utiliser les boutons et

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mars 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2017
    Messages : 20
    Points : 9
    Points
    9

    Par défaut

    Et voici pour Mr un message d'erreur tous chaud :p

    Nom : erreur kitsal.png
Affichages : 86
Taille : 26,3 Ko

  4. #4
    Membre averti Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    août 2014
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : août 2014
    Messages : 220
    Points : 382
    Points
    382

    Par défaut

    Lorsque le message apparait vérifie que ta variable "listekit" ne soit pas égale à Nothing
    Merci de ainsi que d'utiliser les boutons et

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mars 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2017
    Messages : 20
    Points : 9
    Points
    9

    Par défaut

    Citation Envoyé par r.morel Voir le message
    Lorsque le message apparait vérifie que ta variable "listekit" ne soit pas égale à Nothing
    Comment qu'on fait ?

    Puis ca me le fais pas toujours au même stade ca me le fait aussi et la plus part du temps sur l'une de ces lignes, au moment où il doit choisir la feuille correspondante à la taille de ma machine.
    Ce qui veux dire qu'il a réussi à passer la ligne qui a précédemment générer l'erreur.

    Nom : erreur kitsal2.png
Affichages : 84
Taille : 36,6 Ko

  6. #6
    Membre averti Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    août 2014
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : août 2014
    Messages : 220
    Points : 382
    Points
    382

    Par défaut

    Citation Envoyé par Fender60 Voir le message
    Comment qu'on fait ?
    Nom : 2017-05-16 12_28_38 - Microsoft Visual Studio.png
Affichages : 84
Taille : 13,3 Ko

    Tu crées un arret en cliquant à gauche des numéros de ligne. Visual Studio va exécuter le code jusqu'à cette ligne. Ensuite tu fais un "pas à pas" avec [F8].
    Ensuite comme sur l'image jointe tu peux voir la valeur de tes variables.

    Je te conseil de te familiariser avec Visual Studio grâce par exemple à ce cours : http://ditch.developpez.com/articles/visualstudio/2008/presentation/
    Le mode "pas à pas" et les fenêtres d’exécution et de débogage te seront très utiles.

    En ce qui concerne le second message d'erreur. Il est assez clair ! Tu as un soucis d'index de tes feuilles. Tu dois vérifier que tu aies une feuille à l'index N°7 de ton classeur...
    Merci de ainsi que d'utiliser les boutons et

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mars 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2017
    Messages : 20
    Points : 9
    Points
    9

    Par défaut

    Citation Envoyé par r.morel Voir le message
    Nom : 2017-05-16 12_28_38 - Microsoft Visual Studio.png
Affichages : 84
Taille : 13,3 Ko

    Tu crées un arret en cliquant à gauche des numéros de ligne. Visual Studio va exécuter le code jusqu'à cette ligne. Ensuite tu fais un "pas à pas" avec [F8].
    Ensuite comme sur l'image jointe tu peux voir la valeur de tes variables.

    Je te conseil de te familiariser avec Visual Studio grâce par exemple à ce cours : http://ditch.developpez.com/articles/visualstudio/2008/presentation/
    Le mode "pas à pas" et les fenêtres d’exécution et de débogage te seront très utiles.

    En ce qui concerne le second message d'erreur. Il est assez clair ! Tu as un soucis d'index de tes feuilles. Tu dois vérifier que tu aies une feuille à l'index N°7 de ton classeur...
    Oui je me forme en même temps avec ce site et autres Je n'avais néanmoins pas vu que l'on pouvais voir la valeur des variables aussi simplement sans avoir à créer de table.

    En ce qui concerne le second message d'erreur. J'ai déjà bien vérifier sur mon classeur et j'ai bien le nombre de feuille requis ( c'est également moi qui ai fait ce classeur). Mon application requiert 10 feuilles et j'ai bien 10 feuilles dans mon classeur.. après peut être qu'il y a une subtilité que je n'ai pas saisi.

  8. #8
    Membre averti Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    août 2014
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : août 2014
    Messages : 220
    Points : 382
    Points
    382

    Par défaut

    Citation Envoyé par r.morel Voir le message
    Lorsque le message apparait vérifie que ta variable "listekit" ne soit pas égale à Nothing
    Si tu veux que je puisse t'aider, peux-tu répondre à ce post ?
    Merci de ainsi que d'utiliser les boutons et

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mars 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2017
    Messages : 20
    Points : 9
    Points
    9

    Par défaut

    Citation Envoyé par r.morel Voir le message
    Si tu veux que je puise t'aider, peux-tu répondre à ce post ?
    Oui j'était justement entrain de le vérifier ( plusieurs choses à faire à la fois, on doit toujours être partout à la fois dans mon entreprise :p).

    Effectivement, ma variable est nulle la majeur partie du temps et me génère donc cette erreur.

  10. #10
    Membre averti Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    août 2014
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : août 2014
    Messages : 220
    Points : 382
    Points
    382

    Par défaut

    Met un arrêt sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListeKit = xls.Workbooks.Open(My.Settings.cheminKit)
    . Ensuite en faisant [F8] tu dois voir ta variable se modifier...
    Merci de ainsi que d'utiliser les boutons et

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mars 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2017
    Messages : 20
    Points : 9
    Points
    9

    Par défaut

    Voici voilà.

    Ma valeur est toujours à 0.
    Nom : erreur kitsal avec arret.png
Affichages : 78
Taille : 15,2 Ko

    Et oui entre temps je me suis lancé dans une fonction Try au cas où les classeurs sont introuvables (changement de dossier ou renommer). Même rengaine j'apprend en même temps cette fonction. :p

    Voici les changements.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
                Try
                xls = CreateObject("Excel.Application")
                OF2 = xls.Workbooks.Open(My.Settings.cheminOF)
                ListeKit = xls.Workbooks.Open(My.Settings.cheminKit)
     
            Catch ex As Exception
                OpenFileDialog1.InitialDirectory = "c:\"
                OpenFileDialog1.FilterIndex = 2
                OpenFileDialog1.ShowDialog()
                My.Settings.cheminKit = OpenFileDialog2.FileName
                OpenFileDialog2.InitialDirectory = "c:\"
                OpenFileDialog2.FilterIndex = 2
                OpenFileDialog2.ShowDialog()
                My.Settings.cheminOF = OpenFileDialog1.FileName
                ListeKit = xls.Workbooks.Open(My.Settings.cheminKit)
                Kitcommun = ListeKit.Worksheets(1)
                AUTO = OF2.Worksheets(1)
            End Try
    Images attachées Images attachées  

  12. #12
    Expert éminent

    Homme Profil pro
    Développeur .NET
    Inscrit en
    janvier 2012
    Messages
    3 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : janvier 2012
    Messages : 3 888
    Points : 7 953
    Points
    7 953
    Billets dans le blog
    18

    Par défaut

    Bonjour,

    Premièrement, CreateObjet, n'est pas toujours reconnu en .net. Sauf horreur de ma part tu as absolument besoin de l'assembly et/ou (je ne me souviens pas exactement) de l'espace de noms Microsoft.visualbasic, que des puristes disent d'éviter, mais bon, cela ne me semble pas lié à ton problème.

    Le problème avec les numéros d'index des feuilles, c'est que le numéro d'une feuille donnée peut changer dès qu'une feuille est déplacée, ou qu'une feuille est insérée ailleurs qu'à la dernière feuille.

    Tu peux utiliser le nom de la feuille (Hector, Feuil1 etc) au lieu de l'index. Mais le nom doit être entre guillemets.

    Ceci dit, surveille bien quel classeur est actif au moment de faire ton opération. Si ton classeur actif a une seule feuille et que tu lui fais chercher la feuille 7, tu as un problème.

    Également, as-tu mis une valeur pour CheminKit et CheminOF dans l'onglet Pramètres de ton MyProject ?

    Ceci dit, mets un espion sur
    xls (à tout hasard), OF2, ListeKit, My.Settings.cheminOF et My.Settings.cheminKit

    et exécutes ces trois lignes au pas-à-pas, en vérifiant les valeurs dans la fenêtre Espions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    xls = CreateObject("Excel.Application")
                OF2 = xls.Workbooks.Open(My.Settings.cheminOF)
                ListeKit = xls.Workbooks.Open(My.Settings.cheminKit)
    Si une seule des valeurs est empty, Nothing ou n'importe quoi d'illogique, ne vas pas plus loin.

    AJOUTÉ :

    En faisant ton pas-à-pas, ru devrais voir si ces lignes, déclenchent vraiment une exception en cas de problème. Si elles font juste prendre une mauvaise valeur, sans déclencher d'exception, tu vas probablement devoir modifier tes tests.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    À force de vouloir considérer les utilisateurs comme des imbéciles patentés, on risque de se mettre dans le trouble.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mars 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2017
    Messages : 20
    Points : 9
    Points
    9

    Par défaut

    Citation Envoyé par clementmarcotte Voir le message
    Bonjour,

    Premièrement, CreateObjet, n'est pas toujours reconnu en .net. Sauf horreur de ma part tu as absolument besoin de l'assembly et/ou (je ne me souviens pas exactement) de l'espace de noms Microsoft.visualbasic, que des puristes disent d'éviter, mais bon, cela ne me semble pas lié à ton problème.
    Là c'est du chinois pour moi :p. Mais je vais creuser dans un deuxième temps ce sujet .

    Citation Envoyé par clementmarcotte Voir le message
    Le problème avec les numéros d'index des feuilles, c'est que le numéro d'une feuille donnée peut changer dès qu'une feuille est déplacée, ou qu'une feuille est insérée ailleurs qu'à la dernière feuille.

    Tu peux utiliser le nom de la feuille (Hector, Feuil1 etc) au lieu de l'index. Mais le nom doit être entre guillemets.

    Ceci dit, surveille bien quel classeur est actif au moment de faire ton opération. Si ton classeur actif a une seule feuille et que tu lui fais chercher la feuille 7, tu as un problèmeCeci dit, mets un espion sur
    xls (à tout hasard), OF2, ListeKit, My.Settings.cheminOF et My.Settings.cheminKit

    et exécutes ces trois lignes au pas-à-pas, en vérifiant les valeurs dans la fenêtre Espions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    xls = CreateObject("Excel.Application")
                OF2 = xls.Workbooks.Open(My.Settings.cheminOF)
                ListeKit = xls.Workbooks.Open(My.Settings.cheminKit)
    Si une seule des valeurs est empty, Nothing ou n'importe quoi d'illogique, ne vas pas plus loin.

    AJOUTÉ :

    En faisant ton pas-à-pas, ru devrais voir si ces lignes, déclenchent vraiment une exception en cas de problème. Si elles font juste prendre une mauvaise valeur, sans déclencher d'exception, tu vas probablement devoir modifier tes tests.
    J'y ai effectivement pensé. Comme quoi il y a peut être encore un espoir pour moi.


    De ce que tu me dis pour le classeur actif. J'en déduit qu'on ne peut avoir d'actif un seul classeur et une seule feuille en même temps.


    Ce qui voudrais dire que toute ma logique qui suit ne sert à rien..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     If HydrauliqueVéhicule.Checked = True Then          'entrainement'
                AUTO.Cells(14, 7).value = "HYDRAULIQUE"
            ElseIf MoteurAux.Checked = True And Form3.Diesel.Checked = True And Form3.RefroidissementAir.Checked = True Then
                AUTO.Cells(14, 1).value = KitSal.Cells(4, 2).value
            ElseIf MoteurAux.Checked = True And Form3.Diesel.Checked = True And Form3.RefroidissementLiquide.Checked = True Then
                AUTO.Cells(14, 1).value = KitSal.Cells(5, 2).value
            ElseIf MoteurAux.Checked = True And Form3.Essence.Checked = True And Form3.Marquemoteur = 1 Then
                AUTO.Cells(14, 1).value = KitSal.Cells(2, 2).value
            ElseIf MoteurAux.Checked = True And Form3.Essence.Checked = True And Form3.Marquemoteur = 2 Then
                AUTO.Cells(14, 1).value = KitSal.Cells(3, 2).value
            End If


    Où comme tu l'as dis il faut "juste" que je modifie mes tests..

    Citation Envoyé par clementmarcotte Voir le message
    Également, as-tu mis une valeur pour CheminKit et CheminOF dans l'onglet Pramètres de ton MyProject ?.
    Non aucune valeur. Je pensais que mon programme permettais par la suite de leur en attribué.


    Edit:

    Depuis mes dernière modification je n'ai plus que cette expection qui est déclenché mais je ne vois pas pourquoi.. Mais je cherche hein
    Nom : erreur kitsal3.png
Affichages : 74
Taille : 29,1 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
       Try
                xls = CreateObject("Excel.Application")
                OF2 = xls.Workbooks.Open(My.Settings.cheminOF)
                ListeKit = xls.Workbooks.Open(My.Settings.cheminKit)
     
            Catch ex As Exception
                KitDialog.InitialDirectory = "c:\"
                KitDialog.FilterIndex = 2
                KitDialog.ShowDialog()
                My.Settings.cheminKit = KitDialog.FileName
                If DialogResult = Windows.Forms.DialogResult.Abort OrElse DialogResult = Windows.Forms.DialogResult.Cancel Then
                    Exit Sub
                End If
                OfDialog.InitialDirectory = "c:\"
                OfDialog.FilterIndex = 2
                OfDialog.ShowDialog()
                My.Settings.cheminOF = OfDialog.FileName
                If DialogResult = Windows.Forms.DialogResult.Abort OrElse DialogResult = Windows.Forms.DialogResult.Cancel Then
                    Exit Sub
                End If
                ListeKit = xls.Workbooks.Open(My.Settings.cheminKit)
                OF2 = xls.Workbooks.Open(My.Settings.cheminOF)
            End Try
     
            Kitcommun = ListeKit.Worksheets("Kit commun")       'choix feuille excel'
            AUTO = OF2.Worksheets(1)

  14. #14
    Membre averti Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    août 2014
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : août 2014
    Messages : 220
    Points : 382
    Points
    382

    Par défaut

    Salut,
    Citation Envoyé par Fender60 Voir le message
    Là c'est du chinois pour moi :p. Mais je vais creuser dans un deuxième temps ce sujet .
    Je pense au contraire que tu devrais commencer par cela! Sinon tu ne pourras pas tester grand chose...
    Regarde ce tuto : http://drq.developpez.com/vb/tutoriels/Excel/

    Citation Envoyé par Fender60 Voir le message
    De ce que tu me dis pour le classeur actif. J'en déduit qu'on ne peut avoir d'actif un seul classeur et une seule feuille en même temps.
    La manipulation de plusieurs feuilles et classeurs est tout à fait possible

    Citation Envoyé par Fender60 Voir le message
    Non aucune valeur. Je pensais que mon programme permettais par la suite de leur en attribué.
    Essai dans un un premier temps de renseigner le chemin en l'écrivant dans ton code. On verra ensuite pour faire un OpenFileDialog
    Merci de ainsi que d'utiliser les boutons et

  15. #15
    Expert éminent

    Homme Profil pro
    Développeur .NET
    Inscrit en
    janvier 2012
    Messages
    3 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : janvier 2012
    Messages : 3 888
    Points : 7 953
    Points
    7 953
    Billets dans le blog
    18

    Par défaut

    Bonjour,

    Citation Envoyé par Fender60 Voir le message
    De ce que tu me dis pour le classeur actif. J'en déduit qu'on ne peut avoir d'actif un seul classeur et une seule feuille en même temps.
    Comme le dit si bien r.morel, Excel peut manipuler plusieurs classeurs et plusieurs feuilles dans la même session. La notion de classeur (document) actif dans Excel (Word) est très importante. Autant, il peut y avoir plusieurs classeurs (documents) ouverts en même temps, un seul peut être le classeur (document) actif. Seule l'action sur le classeur actif permet d'éliminer la désignation explicite du classeur et de la feuille dans l'appel des objets. En l'absence de classeur effectivement sélectionné, le classeur actif est le dernier classeur ouvert.

    Par exemple, une macro VBA (c'est le même principe en VB.net) dans le classeur Ernest peut lire la cellule a1 de la Feuil1 du classeur Hector de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    valeur = workbooks("Hector").sheets("Feuil1").range("a1").value
    N'importe comment, c'est généralement préférable, même si c'est plus long, de toujours indiquer la hiérarchie des objets.

    Non aucune valeur. Je pensais que mon programme permettais par la suite de leur en attribué.
    Tu as besoin de mettre des valeurs, ou de les indiquer explicitement. Sinon cela plante. Rien ne t'empêche de les changer dans ton code plus tard.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ListeKit = xls.Workbooks.Open(My.Settings.cheminKit)
    Puisque tu n'as pas de valeur dans My.settings.cheminkit, tu n'as pas de classeur listekit, donc tu n'as pas de feuille Kit_commun.

    Si les trois lignes de ton Try ne génèrent pas d'exception, tu ne renseignes pas tes valeurs My.Settings.cheminOF, ni My.Settings.cheminKit. Donc, mets des valeurs valides dans ton onglet Paramètres, et tu pourras voir si cela passe. Et je penche pour oui.

    Ou, si tu veux absolument laisser les paramètres vides et utiliser une boîte de dialogue pour que l'utilisateur les indique, tu peux patenter quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if My.Settings.cheminKit = string.empty  then
       boîte de dialogue
       My.Settings.cheminKit = la réponse
    end if
     
    if  My.Settings.cheminOF =  string.empty
       boîte de dialogue
       My.Settings.cheminOF =la réponse
    end if
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    À force de vouloir considérer les utilisateurs comme des imbéciles patentés, on risque de se mettre dans le trouble.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mars 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2017
    Messages : 20
    Points : 9
    Points
    9

    Par défaut

    Merci pour ton aide, je vais regarder tous

    Je suis en déplacement pendant deux semaines donc je ne pourrais continuer pendant ce temps..
    Je vous tiens au courant

  17. #17
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mars 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2017
    Messages : 20
    Points : 9
    Points
    9

    Par défaut

    Bonjour,

    De retour dans mon bureau je me remet la tête dans le code. Après avoir vu quelques incohérences dans mon code. Je me rend compte que je n'ai plus qu'une erreur. Une inédite de surcroit.

    Elle se produit lorsque je manipule deux feuilles différentes d'un même classeur.
    Lorsque je manipule la première tous se passe pour le mieux. Mais dès que je switch sur la seconde crac erreur Membre introuvable.

    Nom : erreur kitcommun.png
Affichages : 39
Taille : 33,2 Ko

    Y a t'il une manœuvre spéciale pour manipuler deux feuilles en même temps d'un même classeur ?

  18. #18
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    avril 2007
    Messages
    12 868
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : avril 2007
    Messages : 12 868
    Points : 23 193
    Points
    23 193

    Par défaut

    d'autres moyens d'accéder à excel souvent mieux que l'interop :
    https://www.developpez.net/forums/d1...x/#post9245089
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  19. #19
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mars 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2017
    Messages : 20
    Points : 9
    Points
    9

    Par défaut

    Citation Envoyé par Pol63 Voir le message
    d'autres moyens d'accéder à excel souvent mieux que l'interop :
    https://www.developpez.net/forums/d1...x/#post9245089
    Très interressant, j'ai eu cette réflexion car les fichier excel sont constamment ouvert par plusieurs postes en même temps.

    Ce qui voudrais dire qu'il faut que j'abandonne mon appli sur vb pour passer sur access ? Ou j'ai encore pas tous compris..

  20. #20
    Membre averti Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    août 2014
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : août 2014
    Messages : 220
    Points : 382
    Points
    382

    Par défaut

    Citation Envoyé par Fender60 Voir le message
    Très interressant, j'ai eu cette réflexion car les fichier excel sont constamment ouvert par plusieurs postes en même temps.

    Ce qui voudrais dire qu'il faut que j'abandonne mon appli sur vb pour passer sur access ? Ou j'ai encore pas tous compris..
    Salut,
    Pour moi, si vous utilisez des fichiers partagés et que vous souhaitez travailler en simultané il impératif de s'orienter directement vers une BDD cela t'évitera bien des déboires...
    @+
    Merci de ainsi que d'utiliser les boutons et

Discussions similaires

  1. manipuler excel avec delphi ( gestion des feuilles)
    Par lila23 dans le forum Débutant
    Réponses: 4
    Dernier message: 01/04/2009, 16h14
  2. Excel: gestion des feuilles
    Par j.p.mignot dans le forum Excel
    Réponses: 2
    Dernier message: 07/11/2006, 11h28
  3. Réponses: 2
    Dernier message: 30/01/2006, 23h19
  4. Comment remplir un ComboBox avec le nom des feuilles Excel ?
    Par libracom dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 27/06/2005, 16h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo