(vb6) aide pour correction imposs+optimisat°
Résolu
manautop
Messages postés
138
Date d'inscription
Statut
Membre
Dernière intervention
-
manautop Messages postés 138 Date d'inscription Statut Membre Dernière intervention -
manautop Messages postés 138 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je me permet de revernir vers vous pour vous demander une grande aide,
- j'ai écris un programme qui permet de deployer un fichier excel (en ressource)
- le nom du fichier excel à la sortie doit comporter l'année inscrite par lutilsateur (textbox1)
- ce fichier est depliyer dans un repértoire qui s'il n'existe pas est créer automatiquement
- le nom du repertoire est donné par l'utilisateur ==> normalement l'année marqué par l'tilisateur (textbox1)
j'arrive parfaitement à créer le repertoire si il n'exiiste pas , arreter le process si l'utilisateur n'ecrit rien mais il y a un problème à la fin de mon code et je ne sais pas pourquoi
Voici mon code avec en gras ce qui pose problème + message d' erreur à la fin
'Creer un fichier Excel avec System.Reflection
' et Methode shared AssemblyGetManifestResourceStream("namespace.nomfichier.ext"
'---------------------------------------------------------------------------
'NOTA-BENE:
'1/Recuperer la chaine namespace dans proprites du projet
'2/Proprietes Projet->Resources->Ajouter Fichier...
'3/Eplorateur Solution-> Fichier resource ->Proprietes
'- action de generation =>mettre resource incoporeee
Imports System
Imports System.Windows
Imports System.Reflection
Imports System.IO
Public Class Window3
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
'Contrôler si répertoire existe?
Dim MyPath As String 'Définition des variables
Dim MyName As String
Dim yearname As String
yearname = TextBox1.Text
MyPath = "C:\Documents and Settings\JSEBBAN\Bureau\projet" & yearname 'On initialise la variable
If TextBox1.Text = "" Then
Title$ = "Création d'un répertoire"
Dim Messagek = ("Veuillez saisir le nom du répertoire à créer!")
MsgBox(Messagek, 64, Title$)
TextBox1.Focus()
Else
'Instructions
End If
'Si l'utilisateur n'a pas saisie un nom... alors sortie du programme
If TextBox1.Text = "" Then Exit Sub
'Puisqu'il a saisi un nom, nous traitons sa demande!
If MyName = Dir(MyPath, vbDirectory) = vbEmpty Then
'On teste l'existence du répertoire
MsgBox("Le répertoire " & Chr(34) & MyPath & Chr(34) & " existe bien!")
'Si le répertoire saisie existe... alors sortons....
Exit Sub
Else
MsgBox("Le répertoire " & Chr(34) & MyPath & Chr(34) & " n 'existe pas!", vbExclamation)
'Alors...créons le répertoire
yearname = TextBox1.Text
MkDir("c:\windows\" & yearname) 'Indiquez le chemin ou doit être stocké le répertoire
End If
'Ouverture d'une fenêtre de dialogue
MsgBox("Le répertoire " & yearname & " vient d'être créé!")
'---------------------------------------------------------------------------
'-------------------------Creation du Fichier Excel-------------------------------
'---------------------------------------------------------------------------
' ---------------------------------------------------------------------------
'NB: le namespace n'est pas accesible dans System.Reflection
'sera code en "dur".Ici ce sera "ExcelResources"
'Nom Dossier application
Dim DossierApplication As String = MyPath
'Nom du Fichier Excel apres Recuperation dans My.Resources
'Ce nom n'est pas forcement celui d'origine mais peut etre saisi par user
Dim nomFichierSave As String = "test" & yearname & ".xls"
Dim dot As String = "."
Dim objStream As Stream
Dim objAssembly As Assembly
Dim objFileStream As FileStream
'Dim objNameSpace As String
'Tableau octets pour recopie "octets par octets"
Dim OctetResources() As Byte = New Byte() {}
'Obtient Assembly de l'Application
objAssembly = Assembly.GetExecutingAssembly
'Nom du Fichier Excel original dans My.Resources
Dim nomFichierRes As String = "MKG_FUND.xls"
'Lecture de My.resources
'-----------------------
objStream = objAssembly.GetManifestResourceStream("ExcelResources" & dot & nomFichierRes)
If objStream IsNot Nothing Then
MessageBox.Show(objStream.Length.ToString)
End If
'Ecriture du fichier Excel recupere dans dossier Application
'-----------------------
ReDim OctetResources(objStream.Length)
objStream.Read(OctetResources, 0, objStream.Length)
objFileStream = New FileStream(DossierApplication & "\" & nomFichierSave, FileMode.Create)
objFileStream.Write(OctetResources, 0, objStream.Length)
End Sub
End Class
==> le message d erreur
l'exeption NullReferenceExeption n'a pas été gérée
le référence objet n'est pas définie à une instance d'objet
Merci d'avance de votre aide
je me permet de revernir vers vous pour vous demander une grande aide,
- j'ai écris un programme qui permet de deployer un fichier excel (en ressource)
- le nom du fichier excel à la sortie doit comporter l'année inscrite par lutilsateur (textbox1)
- ce fichier est depliyer dans un repértoire qui s'il n'existe pas est créer automatiquement
- le nom du repertoire est donné par l'utilisateur ==> normalement l'année marqué par l'tilisateur (textbox1)
j'arrive parfaitement à créer le repertoire si il n'exiiste pas , arreter le process si l'utilisateur n'ecrit rien mais il y a un problème à la fin de mon code et je ne sais pas pourquoi
Voici mon code avec en gras ce qui pose problème + message d' erreur à la fin
'Creer un fichier Excel avec System.Reflection
' et Methode shared AssemblyGetManifestResourceStream("namespace.nomfichier.ext"
'---------------------------------------------------------------------------
'NOTA-BENE:
'1/Recuperer la chaine namespace dans proprites du projet
'2/Proprietes Projet->Resources->Ajouter Fichier...
'3/Eplorateur Solution-> Fichier resource ->Proprietes
'- action de generation =>mettre resource incoporeee
Imports System
Imports System.Windows
Imports System.Reflection
Imports System.IO
Public Class Window3
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
'Contrôler si répertoire existe?
Dim MyPath As String 'Définition des variables
Dim MyName As String
Dim yearname As String
yearname = TextBox1.Text
MyPath = "C:\Documents and Settings\JSEBBAN\Bureau\projet" & yearname 'On initialise la variable
If TextBox1.Text = "" Then
Title$ = "Création d'un répertoire"
Dim Messagek = ("Veuillez saisir le nom du répertoire à créer!")
MsgBox(Messagek, 64, Title$)
TextBox1.Focus()
Else
'Instructions
End If
'Si l'utilisateur n'a pas saisie un nom... alors sortie du programme
If TextBox1.Text = "" Then Exit Sub
'Puisqu'il a saisi un nom, nous traitons sa demande!
If MyName = Dir(MyPath, vbDirectory) = vbEmpty Then
'On teste l'existence du répertoire
MsgBox("Le répertoire " & Chr(34) & MyPath & Chr(34) & " existe bien!")
'Si le répertoire saisie existe... alors sortons....
Exit Sub
Else
MsgBox("Le répertoire " & Chr(34) & MyPath & Chr(34) & " n 'existe pas!", vbExclamation)
'Alors...créons le répertoire
yearname = TextBox1.Text
MkDir("c:\windows\" & yearname) 'Indiquez le chemin ou doit être stocké le répertoire
End If
'Ouverture d'une fenêtre de dialogue
MsgBox("Le répertoire " & yearname & " vient d'être créé!")
'---------------------------------------------------------------------------
'-------------------------Creation du Fichier Excel-------------------------------
'---------------------------------------------------------------------------
' ---------------------------------------------------------------------------
'NB: le namespace n'est pas accesible dans System.Reflection
'sera code en "dur".Ici ce sera "ExcelResources"
'Nom Dossier application
Dim DossierApplication As String = MyPath
'Nom du Fichier Excel apres Recuperation dans My.Resources
'Ce nom n'est pas forcement celui d'origine mais peut etre saisi par user
Dim nomFichierSave As String = "test" & yearname & ".xls"
Dim dot As String = "."
Dim objStream As Stream
Dim objAssembly As Assembly
Dim objFileStream As FileStream
'Dim objNameSpace As String
'Tableau octets pour recopie "octets par octets"
Dim OctetResources() As Byte = New Byte() {}
'Obtient Assembly de l'Application
objAssembly = Assembly.GetExecutingAssembly
'Nom du Fichier Excel original dans My.Resources
Dim nomFichierRes As String = "MKG_FUND.xls"
'Lecture de My.resources
'-----------------------
objStream = objAssembly.GetManifestResourceStream("ExcelResources" & dot & nomFichierRes)
If objStream IsNot Nothing Then
MessageBox.Show(objStream.Length.ToString)
End If
'Ecriture du fichier Excel recupere dans dossier Application
'-----------------------
ReDim OctetResources(objStream.Length)
objStream.Read(OctetResources, 0, objStream.Length)
objFileStream = New FileStream(DossierApplication & "\" & nomFichierSave, FileMode.Create)
objFileStream.Write(OctetResources, 0, objStream.Length)
End Sub
End Class
==> le message d erreur
l'exeption NullReferenceExeption n'a pas été gérée
le référence objet n'est pas définie à une instance d'objet
Merci d'avance de votre aide
A voir également:
- (vb6) aide pour correction imposs+optimisat°
- Vb6 - Télécharger - Divers Utilitaires
- Activer correction automatique android - Guide
- Telecharger clavier français avec correction - Télécharger - Divers Utilitaires
- Le correcteur automatique de votre smartphone vous rend fou ? Voici comment le désactiver - Accueil - Mobile
- Mode correction word - Guide
1 réponse
et voici ma solution
Creer un fichier Excel avec System.Reflection
' et Methode shared AssemblyGetManifestResourceStream("namespace.nomfichier.ext"
'---------------------------------------------------------------------------
'NOTA-BENE:
'1/Recuperer la chaine namespace dans proprites du projet
'2/Proprietes Projet->Resources->Ajouter Fichier...
'3/Eplorateur Solution-> Fichier resource ->Proprietes
'- action de generation =>mettre resource incoporeee
Imports System
Imports System.Windows
Imports System.Reflection
Imports System.IO
Public Class Window3
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button2.Click
Me.Close()
End Sub
Private Sub Button3_Click_1(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button3.Click
Dim MyPath As String 'Définition des variables
Dim MyName As String
Dim yearname As String
yearname = TextBox1.Text
'Contrôler si répertoire existe
MyPath = "C:\Documents and Settings\JSEBBAN\Bureau\projet\" & yearname 'On initialise la variable
If TextBox1.Text = "" Then
Title$ = " Creating a directory"
Dim Messagek = ("Please enter the directory name to create!")
MsgBox(Messagek, 64, Title$)
TextBox1.Focus()
Else
'Instructions
End If
'Si l'utilisateur n'a pas saisie un nom... alors sortie du programme
If TextBox1.Text = "" Then Exit Sub
'Puisqu'il a saisi un nom, nous traitons sa demande!
If MyName = Dir(MyPath, vbDirectory) = vbEmpty Then
'On teste l'existence du répertoire
MsgBox("the directory " & Chr(34) & MyPath & Chr(34) & " exists!")
'Si le répertoire saisie existe... alors sortons....
Exit Sub
Else
MsgBox("the directory " & Chr(34) & MyPath & Chr(34) & " does not exists!", vbExclamation)
'Alors...créons le répertoire
yearname = TextBox1.Text
MkDir("C:\Documents and Settings\JSEBBAN\Bureau\projet\" & yearname) 'Indiquez le chemin ou doit être stocké le répertoire
End If
'Ouverture d'une fenêtre de dialogue
MsgBox("the directory " & yearname & " newly created!")
' creation du excel par la ressource
Dim path_excel As String
path_excel = MyPath & "\" & TextBox1.Text & " " & "MkgFund.xlsx"
IO.File.WriteAllBytes(path_excel, My.Resources.MkgFund)
path_excel = MyPath & "\" & TextBox1.Text & " " & "AFRICA" & " " & "MkgFund.xlsx"
IO.File.WriteAllBytes(path_excel, My.Resources.MkgFund)
'etc copier ces trois derniere ligne en modifiant le path-excel pour rejouter une copie e, changeant le nom
' pensez à mettre le doc ds vos ressources ex ici MkgFund.xls est dans es ressources
End Sub
End Class
Creer un fichier Excel avec System.Reflection
' et Methode shared AssemblyGetManifestResourceStream("namespace.nomfichier.ext"
'---------------------------------------------------------------------------
'NOTA-BENE:
'1/Recuperer la chaine namespace dans proprites du projet
'2/Proprietes Projet->Resources->Ajouter Fichier...
'3/Eplorateur Solution-> Fichier resource ->Proprietes
'- action de generation =>mettre resource incoporeee
Imports System
Imports System.Windows
Imports System.Reflection
Imports System.IO
Public Class Window3
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button2.Click
Me.Close()
End Sub
Private Sub Button3_Click_1(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button3.Click
Dim MyPath As String 'Définition des variables
Dim MyName As String
Dim yearname As String
yearname = TextBox1.Text
'Contrôler si répertoire existe
MyPath = "C:\Documents and Settings\JSEBBAN\Bureau\projet\" & yearname 'On initialise la variable
If TextBox1.Text = "" Then
Title$ = " Creating a directory"
Dim Messagek = ("Please enter the directory name to create!")
MsgBox(Messagek, 64, Title$)
TextBox1.Focus()
Else
'Instructions
End If
'Si l'utilisateur n'a pas saisie un nom... alors sortie du programme
If TextBox1.Text = "" Then Exit Sub
'Puisqu'il a saisi un nom, nous traitons sa demande!
If MyName = Dir(MyPath, vbDirectory) = vbEmpty Then
'On teste l'existence du répertoire
MsgBox("the directory " & Chr(34) & MyPath & Chr(34) & " exists!")
'Si le répertoire saisie existe... alors sortons....
Exit Sub
Else
MsgBox("the directory " & Chr(34) & MyPath & Chr(34) & " does not exists!", vbExclamation)
'Alors...créons le répertoire
yearname = TextBox1.Text
MkDir("C:\Documents and Settings\JSEBBAN\Bureau\projet\" & yearname) 'Indiquez le chemin ou doit être stocké le répertoire
End If
'Ouverture d'une fenêtre de dialogue
MsgBox("the directory " & yearname & " newly created!")
' creation du excel par la ressource
Dim path_excel As String
path_excel = MyPath & "\" & TextBox1.Text & " " & "MkgFund.xlsx"
IO.File.WriteAllBytes(path_excel, My.Resources.MkgFund)
path_excel = MyPath & "\" & TextBox1.Text & " " & "AFRICA" & " " & "MkgFund.xlsx"
IO.File.WriteAllBytes(path_excel, My.Resources.MkgFund)
'etc copier ces trois derniere ligne en modifiant le path-excel pour rejouter une copie e, changeant le nom
' pensez à mettre le doc ds vos ressources ex ici MkgFund.xls est dans es ressources
End Sub
End Class