IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Problème avec Me.


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 14
    Par défaut Problème avec Me.
    Bonjour,

    Dans mon projet je dois agencer des données remontées automatiquement dans un fichier Excel. Le code que je vais vous montrer vient du cours sur le VB.NET de M. Lasserre (Qui est super soit dit en passant), il a pour but de me familiariser avec le pilotage de Excel. Je l'ai modifié car le compilateur m'indiquait des erreurs. Le problème, c'est qu'il m'en reste "UNE" que je n'arrive pas à débugger.
    Voilà le
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    Option Explicit On
    'Option Strict On
     
    Imports System
    Imports System.Windows.Forms
    Imports System.Windows.Forms.Button
    Imports System.Windows.Forms.TextBox
    Imports System.Drawing.Bitmap
    Imports Microsoft.Office.Interop.Excel
     
    Module Program
    Friend WithEvents cmdTrace As New System.Windows.Forms.Button
    Friend WithEvents txtMini As New System.Windows.Forms.TextBox 
    Friend WithEvents txtMaxi As New System.Windows.Forms.TextBox 
    Dim Excel As New Microsoft.Office.Interop.Excel.Application
    Dim txtFormule as New Microsoft.Office.Interop.Excel.Application
    	Sub Main()		
    		Console.WriteLine("Hello World!")
     
    		' TODO: Implement Functionality Here
     
    		Console.Write("Press any key to continue . . . ")
    		Console.ReadKey(True)
    	End Sub
    	Private Sub cmdTrace_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdTrace.Click
    		'Appel d'Excel et attribution des variables
    		Dim AppExcel As New Microsoft.Office.Interop.Excel.Application
    		Dim Classeur As Microsoft.Office.Interop.Excel.Workbook = AppExcel.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet)
    		Dim Feuille As Microsoft.Office.Interop.Excel.Worksheet = Classeur.ActiveSheet
    		'Nom des séries
    		Feuille.Cells(1, 1).value = "X"
    		Feuille.Cells(1, 2).value = Me.txtFormule.Text
    		Feuille.Cells(2, 1).value = CDbl (txtMini.Text)
    		'Création d'un tableau de 100 valeurs allant de min à max par pas fixe
    		Feuille.Cells(2, 1).resize(101).DataSeries(Excel.XlRowCol.xlColums, Excel.XlDataSeriesType.xlDataSeriesLinear, ,(CDbl(txtMaxi.Text)-CDbl(txtMini.Text))/100)
    		Feuille.Cells(2, 2).resize(101).formulalocal = Replace("=" & txtFormule.Text, "X", "LC(-1)",1,-1, CompareMethod.Text)
    		Dim Maplage As Microsoft.Office.Interop.Excel.Range
    		'Recherche les cellules en erreur
    		MaPlage = Feuille.Cells(1, 2).rezise(102).SpecialCells(Excel.XlCellType.xlCellTypeFormulas,Excel.XlSpecialCellsValue.xlerrors)
    		If Not MaPlage Is Nothing Then
    			'Il y a des erreurs
    			If MaPlage.Count = 101 Then
    				MessageBox.Show("Erreur dans la formule", "ERREUR", MessageBoxButtons.OK, MessageBoxIcon.Error)
    				Classeur.Close(False)
    				Maplage=Nothing
    				Feuille=Nothing
    				Classeur=Nothing
    				AppExcel.Quit()
    				AppExcel=Nothing
    				Exit Sub
    			End If
    		Else
    			MaPlage.Value="#N/A"		
    		End If
    		'Tracé de la courbe
    		Dim Graphe As Microsoft.Office.Interop.Excel.chart=Classeur.Sheets.Add(Classeur.Sheets(1), ,1,Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATChart)
    		Graphe.ChartType=Excel.XlChartType.xlXYScatterLinesNoMakersGraphe.SetSourceData(Feuille.Cells(1,1).Resize(102,2),Excel.XlRowCol.xlColums)
    		'Récupération du presse-papiers dans le picturebox
    		Dim data As IDataObject
    		data=Clipboard.GetDataObject
    		Dim bmap As System.Drawing.Bitmap
    		If data.GetDataPresent(GetType(System.Drawing.Bitmap)) Then
    			bmap=CType(data.GetData(GetType(System.Drawing.Bitmap)),System.Drawing.Bitmap)
    			Me.PictureBox1.Image=bmap
    			Me.PictureBox1.SizeMode=PictureBoxSizeMode.StretchImage			
    		End If
    		'Fermeture propre d'Excel
    		Classeur.Close(False)
    		Maplage=Nothing
    		Feuille=Nothing
    		Classeur=Nothing
    		AppExcel.Quit()
    		AppExcel=Nothing
    	End Sub
    	Private Sub txtMini_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtMini.KeyPress
    		Dim c As Char
    		c=e.KeyChar
    		If Not (Char.IsDigit(c) Or Char.IsControl(c)) Then 
    			e.Handled=True
    		End If		
    	End Sub
    	Private Sub txtMaxi_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtMaxi.KeyPress
    		Dim c As Char
    		c=e.KeyChar
    		If Not (Char.IsDigit(c) Or Char.IsControl(c)) Then 
    			e.Handled=True
    		End If		
    	End Sub
    End Module
    Je n'utilise pas VB 2005 express mais SharpDevelop 2.2. Je débute en VB.NET, j'étais sur du C++ avant.

    Alors l'erreur qu'il m'indique est 'Me' n'est pas valide dans un module. (BC32001). Et ça dans les trois cas où 'Me' est présent.

    Comme je ne m'y connais pas trop en .NET, je bloque.

    Ps : le code à pour but de créer un graph sous excel via le presse papier.

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    Me désigne l'objet actuellement référencé à l'endroit de l'éxecution du code

    un module sert à définir des membres (variables,sub,fonction) , mais ne peut etre instancié (ni avoir de propriétés)
    ce n'est donc pas un objet !

    il faut une classe pour utiliser Me
    donc remplace "module" par "class"
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 14
    Par défaut
    Je tiens juste à rectifier que le code vient en fait de J-M Rabilloud, mais je me suis quand même aidé du cour de Philippe Lasserre.

    J'ai changé "Module" en "Class", mais j'ai des erreurs, je vais tenter d'y remedier, si je n'y arrive pas, je repasse pas là .

    Merci Sperot

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 14
    Par défaut
    J'ai testé sur VB 2005 Express et ça marche, par contre sur SharpDevelop, il me met : "Aucune méthode 'Main' aaccessible avec une signature appropriée n'a été trouvée dans 'pilotageExcel'"
    Donc je vais essayer de me débrouiller avec VB 2005 Express, mais si jamais qqn sait ce qu'il se passe sous SharpDevelop, je suis preneur!

    Et encore merci Sperot

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 14
    Par défaut
    Même s'il n'y a pas de réponse pour le problème sous SharpDevelop, je vais mettre le tag résolu.
    Voilà c'était juste pour préciser.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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