Répertoire téléphone simple vb2008 express en lien avec fichier excel (affichage datagridview)

Soyez le premier à donner votre avis sur cette source.

Vue 11 935 fois - Téléchargée 1 600 fois

Description

Répertoire téléphone simple qui à pour but pour les débutant comme moi d'utiliser des fonctions de travail avec un fichier excel et un datagridview.

soyez indulgent, je sais qu'un module ou une class aurait été plus judicieux pour les répétitions de code.
la question simple : quelle différence entre un module et une class ?

nota: pour un affichage correct 1152X864 mini

Source / Exemple :


voir le zip

Conclusion :


maintenant je recherche des fonctions de tri et affichage d'un datagridview.

sinon tout est dans le zip, je savais pas trop quels sont les fichiers nécessaires alors j'ai tout mis.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
1172
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
28 septembre 2013
1
je suis aussi automaticien et cela fait que peu de temps que je programme en VB.NET
Il faut oublier tous tes reflexes des API.
Exemple dans ta sub tu utilises Byref ce qui indique à la sub qu'elle modifira la valeur d'entrée (pas besoin de valeur de sortie en somme), Utilise au début comme en S7, les Byval qui eux lise la varaible passé en paramétre mais sans la modifier, il te faudrat alors une var de sortie à la fin des déclaration d'entrée de sub entre parenthése et sans nom, juste le type de valeur retourné.
ex :
Private Sub Mon_inc (byval X as integer) as integer
return X + 10 ' ajoute 10 à X
End sub
utilisation : tyty Mon_inc(6) // tyty 60
sinon avec byref (à vérifier)
Private sub Mon_inc (byref X as integer)
return X+10
end sub
utilisation : Mon_inc(tyty) // tyty = tyty + 10
je t'invite fortement à lire les tutos dispo sur le net et sur ce site pour bien commencer, lis aussi mes sources car j'ai le même "esprit" que toi de formation et je les commente largement ;)
@++ un 5/10 pour l'encouragement
Messages postés
42
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
26 juillet 2013

Bonjour,

merci de vos commentaires constructifs. Effectivement quand on n'a pas l'habitude il y a des choses qui nous échappent...

Par contre j'ai essayé de factorisé comme vous le conseillez, mais j'arrive pas. j'ai essayé de faire un module pour faire des espaces dans les numéros de tel, ex 0101010101 pour avoir 01 01 01 01 01. j'ai une petite question : c'est normal qu'on ne puisse pas avoir la variable d'entree identique à la variable de sortie ?

module espace
sub traitement (byref entree as string,byref sortie as string)

ici le code... qui fonctionne

end sub
end module

utilisation :

espace.traitement (textbox1.text,textbox1.text)

ça marche pas !

dim tampon as string
tampon=textbox1.text
espace.traitement (tampon,textbox1.text)

ça marche !

déroutant pour un automaticien, car si on fait le prog sans "tampon" sur un automate ça fonctionne !

en tout cas merçi pour vos remarques.
Messages postés
134
Date d'inscription
mardi 23 septembre 2003
Statut
Membre
Dernière intervention
24 octobre 2010

Yes,
il y a aussi qqch qui me gêne, c'est le nom de fichier en "dur", j'aurais plutôt mis ça dans un petit fichier d'init, ce qui permet une plus grande portabilité,
imagines que tu déplaces ton appli dans un répertoire "D:\MesApplisAMoi\repertoire", dans ta class actuelle, il te recréera un fichier vide sur C:\(racine) et ne saura plus retrouver ton "bon" répertoire, alors que là, dans l'évènement Form_Load, il te suffit de charger l'emplacement du fichier et de l'ouvrir et le tour est joué... De plus tu n'es pas obligé d'avoir un nom spécifique, ainsi, tu peux avoir "D:\MesApplisAMoi\repertoire\Mon Repertoire Perso.xls", "D:\MesApplisAMoi\repertoire\Mon Repertoire Professionnel.xls", etc, quitte à rajouter un radiobutton pour sélectionner entre "Perso" et "Pro", etc...

D'acord avec ADN56 pour les autres améliorations

Sinon, c'est bon
Je mets 7 à titre d'encouragement...
Messages postés
1172
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
28 septembre 2013
1
salut, je lis ton code et si je peux me permettre voici ce que je trouve à corriger pour que les débutants partent sur de bonne base.
10. 'test si repertoire existe sinon creation du repertoire
11. If My.Computer.FileSystem.DirectoryExists("C:\repertoire") Then
12. Else
13. My.Computer.FileSystem.CreateDirectory("C:\repertoire")
14. End If
Plus lisible :
If NOT My.Computer.FileSystem.DirectoryExists("C:\repertoire") Then My.Computer.FileSystem.CreateDirectory("C:\repertoire")

Ensuite place option explicit et strict à on et tu verra un tas de correction à apporter.
du style :
15. 'lecture fichier du mois
16. Dim oExcel As Object
17. Dim oBook As Object
18. Dim nom_fichier
19. Dim fichierexiste
xx. Dim xlUp = 0 '!!!!!!!'

nom_fichier et fichierexiste sont quoi ? un string et un booléen ? ben il faut lui dire !
Dim nom_fichier as string = ("c:\repertoire\mon repertoire.xls")
Dim fichierexiste as boolean = My.Computer.FileSystem.FileExists(nom_fichier)

Nomme les controles, les dix textbox et les boutons surtout.
Dans le form load tu fais la même chose que dans le BP7_click.
Ton index i (qui n'est pas typé en integer) tu écris i i + 1.0 ce qui le bascule en double alors qu'il n'y a pas besoin un tableau excel 65635 lignes max de mémoire. Donc : dim I as integer, puis i += 1 pour incrémenter l'index.

Il y a moyen de gagner pas mal de lignes de code en factorisant les .cell(i,x).value = textbox(x).text en utilisant les tags par exemple. Sur le bouton11 par exemple tu peux faire un for each control in controls, tester si c'est une textbox et lui placer un text vide. Utilise aussi une fonction pour ouvrir et fermer ton fichier cela évitera de modifier partout dans le code le jour ou tu voudras utiliser un opendialogue pour laisser l'user choisir son fichier. Tu écris plusieurs du code identique c'est pas ffacile à lire.

Pour ce qui est de l'utilité du code, ben voila quoi. Bonne continuation et souviens toi que c'est pour te faire allez dans le sens de la bonne prog que je te dis cela ;) @++

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.