pitit conseil en vba
Dernière réponse : dans Programmation
voila la situation: je commence le vb sous excel et ai un peu de mal malgré le fait que j'ai déjà programmé en C.
J'ai déjà parcouru quelques sites et forum afin de me mettre dans le bain et ai essayé de faire 2 ou 3 petit programme pour m'y habituer.
mais le but de mon stage (c'est pour ca que je commence le vb), est de transférer les trames que m'envoi une machine par liaison série pour les traitées et organiser sous excel.
La question que je me pose c'est comment arriver à récupérer les données que m'envoi cette machine pour synchroniser mon programme avec elles.
je ne demande un programme tout frais tout beau mais juste si quelqu'un a cette expérience...
je joindrai une partie de mon programme un peu plus tard car je pense que j'aurai surement besoin d'un ou deux conseil en plus, si c'est pas trop demandé.
merci d'avance
J'ai déjà parcouru quelques sites et forum afin de me mettre dans le bain et ai essayé de faire 2 ou 3 petit programme pour m'y habituer.
mais le but de mon stage (c'est pour ca que je commence le vb), est de transférer les trames que m'envoi une machine par liaison série pour les traitées et organiser sous excel.
La question que je me pose c'est comment arriver à récupérer les données que m'envoi cette machine pour synchroniser mon programme avec elles.
je ne demande un programme tout frais tout beau mais juste si quelqu'un a cette expérience...
je joindrai une partie de mon programme un peu plus tard car je pense que j'aurai surement besoin d'un ou deux conseil en plus, si c'est pas trop demandé.
merci d'avance
Autres pages sur : pitit conseil vba
Lassé par la pub ? Créez un compte
j'attend depuis maintenant une semaine qu'on m'envoi le code des trames, la seule doc que j'ai à propos de ma machine est celle à destination des techniciens qui utilise la machine, mais pas ceux qui font le programme pour traiter les infos
Alors en attendant je tape la mise en page que je voudrai avoir en laissant des gros blancs pour la réorganisation des données.
mais est-ce que lorsque le pc recoit des données par port série, il les enregistre temporairement dans un fichier quelconque, qui serait alors facilement récupérable...?
(question annexe : fichier log, késako?)
Alors en attendant je tape la mise en page que je voudrai avoir en laissant des gros blancs pour la réorganisation des données.
mais est-ce que lorsque le pc recoit des données par port série, il les enregistre temporairement dans un fichier quelconque, qui serait alors facilement récupérable...?
(question annexe : fichier log, késako?)
Fichier log dans mon sens = fichier ou tu enregistre ton flux temps réel pour le traiter régulièrement si jamais le débit est trop élevé pour être traité en temps réel.
Si ca arrive sur le port série à la vitesse classique maxi de 115.2kbps alors c'est traitable temps réel par n'importe quelle machine moderne (disons un 486 dx2 66
)
Par contre de là à écrire dans excel au fur et à mesure je ne sais pas.
Dans une BDD 'classique' oui tres certainement, apres il faudrait tester le débit que tu peux obtenir au maxi sur ta machine.
Si ca arrive sur le port série à la vitesse classique maxi de 115.2kbps alors c'est traitable temps réel par n'importe quelle machine moderne (disons un 486 dx2 66
)Par contre de là à écrire dans excel au fur et à mesure je ne sais pas.
Dans une BDD 'classique' oui tres certainement, apres il faudrait tester le débit que tu peux obtenir au maxi sur ta machine.
Encore un problème:
j'ai un nombre de volontaire auwquels j'applique un nombre de produits, pour connaitre le nom de ces produits, je le demande a l'utilisateur lorsque je suis a mon premier volontaire.
Ensuite je n'ai plus qu'a recopier la sélection des cases correspondant a mes noms de produits à la ligne d'en dessous (je ne sais pas si je suis très clair...)
le seul problème c'est que le nombre de produits testé pouvant varier, je ne sais pas a quelle ligne m'arreter durant ma sélection.
Voila quelques lignes de mon code:
cel est ma variable attribuée a une cellule précise
si vous avez une astuce ou quoi que ce soit, n'hésitez pas
, car j'ai essayé de bidouiller mon code dans tout les sens, y a toujours un truc qui cloche.
j'ai un nombre de volontaire auwquels j'applique un nombre de produits, pour connaitre le nom de ces produits, je le demande a l'utilisateur lorsque je suis a mon premier volontaire.
Ensuite je n'ai plus qu'a recopier la sélection des cases correspondant a mes noms de produits à la ligne d'en dessous (je ne sais pas si je suis très clair...)
le seul problème c'est que le nombre de produits testé pouvant varier, je ne sais pas a quelle ligne m'arreter durant ma sélection.
Voila quelques lignes de mon code:
cel est ma variable attribuée a une cellule précise
Do Until i > nbvol
Do Until compteur > nbprod
Do While cel.Offset(u) <> "" ==> me permet de savoir quand une case est vide
u = u + 1
Loop
If i = 1 Then
prod = InputBox("entrez le nom du produit n°" & compteur)
cel.Offset(u, 0) = prod
End If
If i >= 2 Then
Range("b1:b1.Offset(u,0)").Select ==> c'est ici que je bloque car pour lui le code n'est pas correct
Selection.Copy
cel.Offset(u, 0).Select
ActiveSheet.Paste
End If
compteur = compteur + 1
Loop
i = i + 1
compteur = 1
Loop
si vous avez une astuce ou quoi que ce soit, n'hésitez pas
, car j'ai essayé de bidouiller mon code dans tout les sens, y a toujours un truc qui cloche.
Bon bah j'ai trouvé mon erreur, pour ceux que ca intéresse, je m'était focalisé sur un copié-collé qui me semblait pratique mais qui en fait n'était pas idéal, rien ne vaut une bonne vieille distribution des valeurs une par une.
Voila la parie du code que j'ai changé pour ca:
un peu archaique mais efficace
Voila la parie du code que j'ai changé pour ca:
If i = 1 Then
prod = InputBox("entrez le nom du produit n°" & compteur)
cel.Offset(u, 0) = prod
End If
Set cel2 = cel.Offset(u, 0)
If i >= 2 Then
n = cel.Offset(u - nbprod, 0)
cel2 = "" & n
End If
compteur = compteur + 1
Loop
un peu archaique mais efficace
Encore deux derniers petites questions.
comme tu l'as dit boubpopsyteam, on à créer un mini logiciel qui pemet de récupérer les données, puis lorsqu'on enregistre, nous créé directement un fichier excel avec ces données.
mais il me manque 2 codes que je n'arrive à trouver nul part.
-celui qui permet de connaitre la date et l'heure de la denière utilisation d'un fichier (ligne 2)
-celui qui permet charger un fichier (ligne 12)
si quelqu'un avait la bonté de combler ces vides, 'ce serai le plus beau jour de ma vie'
comme tu l'as dit boubpopsyteam, on à créer un mini logiciel qui pemet de récupérer les données, puis lorsqu'on enregistre, nous créé directement un fichier excel avec ces données.
mais il me manque 2 codes que je n'arrive à trouver nul part.
-celui qui permet de connaitre la date et l'heure de la denière utilisation d'un fichier (ligne 2)
-celui qui permet charger un fichier (ligne 12)
fichier = "C:\toto.xls"
Date1 = 'date de la dernière utilisation de ce fichier'
Do While fichier <> ""
'date du dernier enregistrement'
Date2 = FileDateTime(fichier)
If Date2 < Date1 Then
Feuil2.Activate
Range("a1").Select
'chargement de toto.xls'
GoTo traitement
End If
Loop
si quelqu'un avait la bonté de combler ces vides, 'ce serai le plus beau jour de ma vie'
Lassé par la pub ? Créez un compte