Re : Problème d'affichage de résultats dans cellule
Bonjour,
ci-joint le code pour:
1) Ouvrir le fichier à convertir
2) Pour effectuer la conversion
Je pense que mon code n'ai pas des plus performant, mais je ne suis pas programmeur et mes connaissances sont trés limitées, j'ai eu beaucoup de mal à le réaliser, heureusement que vous êtes là et qu'un site comme le votre existe pour obtenir des exemples et une aide.
Bref!
Sub workbook_open()
Application.ScreenUpdating = False
Selection.ClearContents
'Algorithme :
' on lit le fichier d'entrée dans la chaine chaine_a_convertir
' on découpe cette chaine en morceaux (separateur-interfichier Fin+Debut)
' on transforme la chaine d'entrée dans le programme
' on transforme la chaine d'entrée restante dans le programme
Dim i As Long
Dim caract As String * 1
Dim filebox As OPENFILENAME
Dim fname As String
Dim result As Long '
'Range("D5") = ""
With filebox
.lStructSize = Len(filebox)
.hInstance = 0
.lpstrFilter = "Fichier HDP (*.crs)" & vbNullChar & "*.crs" & vbNullChar & _
"Fichier HDP (*.din)" & vbNullChar & "*.din" & vbNullChar & _
"Tout fichier (*.*)" & vbNullChar & "*.*" & vbNullChar & vbNullChar
.nMaxCustomFilter = 0
.nFilterIndex = 1
.lpstrFile = Space(256) & vbNullChar
.nMaxFile = Len(.lpstrFile)
.lpstrFileTitle = Space(256) & vbNullChar
.nMaxFileTitle = Len(.lpstrFileTitle)
.lpstrInitialDir = "C:\." & vbNullChar
.lpstrTitle = "Selectionner le fichier à visualiser" & vbNullChar
.flags = OFN_PATHMUSTEXIST Or OFN_FILEMUSTEXIST Or OFN_HIDEREADONLY
.nFileOffset = 0
.nFileExtension = 0
.lCustData = 0
.lpfnHook = 0
End With
result = GetOpenFileName(filebox)
If result <> 0 Then
fichier1 = Left(filebox.lpstrFile, InStr(filebox.lpstrFile, vbNullChar) - 1)
Else
End
End If
Chemin = Left(filebox.lpstrFile, Longueur - (Longueur - Posi))
Close
Open fichier1 For Random As #1 Len = 1
On Error GoTo 0
' convertion du fichier
i = 8
While Not EOF(1)
Get #1, , caract
If EOF(1) Then GoTo fin
chaine_convertie = Hex(Asc(caract))
If Len(chaine_convertie) = 1 Then chaine_convertie = "0" & chaine_convertie
If Not EOF(1) Then
Get #1, , caract
If EOF(1) Then GoTo fin
chaine_convertie = chaine_convertie & Format(Hex(Asc(caract)), "00")
If Len(chaine_convertie) = 3 Then
chaine_convertie = Mid(chaine_convertie, 1, 2) & "0" & Mid(chaine_convertie, 3)
End If
End If
Range("'CRM'!C" & i) = "'" & chaine_convertie
i = i + 1
Range("c977:c65536").ClearContents
Wend
fin:
Close
Application.ScreenUpdating = True
'Affiche message treminé
MsgBox "Traitement terminé"
End Sub
J'ai découvert que si je désinstalle les macros ci-dessous en début de code
' Désinstalle les macro complementaires
AddIns("Solveur").Installed = False
AddIns("Utilitaire d'analyse").Installed = False
AddIns("Utilitaire d'analyse - VBA").Installed = False
et si je les réinstalle en fin de code
'Installe les macros complémentaires
AddIns("Solveur").Installed = True
AddIns("Utilitaire d'analyse").Installed = True
AddIns("Utilitaire d'analyse - VBA").Installed = True
cela fonctionne et les conversions sont effectuées.
Pourtant dans "outil", "macro complémentaires", toutes les macros complémentaires sont installées.
Merci par avance de votre aide