Produire un tableau "reorganise"

Salut a tous, j'aimerais savoir s'il est pensable de produire un tableau a partir d'un autre sous excel et VBA, mais en appliquant certaines regles propre au fichier de type ".hex". Je fournis un fichier avec mes objectifs.

Capucin

15fichier-hex.zip (36.92 Ko)

Salut le forum

Pour les erreurs de saisies on arrête le traitement . . .

0063    DD    CB        
0065    CB    60        

0066    FD    A8    00    
0069    CB    5E        

Mytå

Salut Myta! je crois m'apercevoir que tu as decele une erreur dans le tableau que j'ai rempli a la mitaine, Excuse-moi, je t'envoie une version sans conflit a cette adresse. J'ai l'impression que tu es un brin familier avec ce que je veux faire? cool!

Capucin

12fichier-hex.zip (36.89 Ko)

Bonjour

Avec ton 1er fichier

Salut le forum

A tester

Sub MatriceConversion()
Dim Cel As Range, LigTablo As Byte
Dim I As Byte, J As Byte, CelDec As Integer
Dim Tablo()

LigTablo = Int(WorksheetFunction.Hex2Dec(Range("A" & Cells(Rows.Count, 1).End(xlUp).Row)) / 16)
ReDim Tablo(LigTablo, 15)

For I = 0 To LigTablo
  For J = 0 To 15
    Tablo(I, J) = "00"
  Next J
Next I

For Each Cel In Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row)
  If Cel <> "" Then
    I = 0
    Do
      CelDec = WorksheetFunction.Hex2Dec(Cel) + I
      Tablo(Int(CelDec / 16), CelDec Mod 16) = Format(Cel.Offset(, I + 1), "00")
      I = I + 1
    Loop Until Cel.Offset(, I + 1) = ""
  End If
Next Cel

[K4].Resize(UBound(Tablo, 1) + 1, UBound(Tablo, 2) + 1) = Tablo

End Sub

Mytå

Salut Banzai! ta version marche tres bien!

Myta, j'ai un petit bug sur une ligne mais il se peut que ce soit cause par une erreur additionnel dans mon tableau ecris a la main car Banzai m'a encercle quelques erreurs additionnelles qui m'avais echappe. Voici la ligne en erreur:

LigTablo = Int(WorksheetFunction.Hex2Dec(Range("A" & Cells(Rows.Count, 1).End(xlUp).Row)) / 16)

Est-ce que chez toi, ca fonctionnais?

Je vais travaille la-dessus.

Merci a vous deux! il semblerais qu'on peut faire n'importe quoi en VBA!

Je vous reviens la-dessus des que possible.

Re le forum

Je ne rencontre aucun problème après avoir décocher les référence manquant dans VBA.

Tu dois aussi activer l'utilitaire d'analyse (Sous Excel 2007)

Modifie pour Excel 2003 (Ajouter Function Hex2Dec)

Sub MatriceConversion()
Dim Cel As Range, LigTablo As Byte
Dim I As Byte, J As Byte, CelDec As Integer
Dim Tablo()

LigTablo = Int(Hex2Dec(Range("A" & Cells(Rows.Count, 1).End(xlUp).Row)) / 16)
ReDim Tablo(LigTablo, 15)

For I = 0 To LigTablo
  For J = 0 To 15
    Tablo(I, J) = "00"
  Next J
Next I

For Each Cel In Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row)
  If Cel <> "" Then
    I = 0
    Do
      CelDec = Hex2Dec(Cel.Value) + I
      Tablo(Int(CelDec / 16), CelDec Mod 16) = Format(Cel.Offset(, I + 1), "00")
      I = I + 1
    Loop Until Cel.Offset(, I + 1) = ""
  End If
Next Cel

[K4].Resize(UBound(Tablo, 1) + 1, UBound(Tablo, 2) + 1) = Tablo

End Sub

Function Hex2Dec(n1 As String) As Long
  Hex2Dec = CLng("&H" & n1)
End Function

Mytå

Myta, l'utilitaire d'analyse et l'utilitaire d'analyse VBA sont maintenant coche mais j'ai encore le message d'erreur sur la ligne surligne

"propriete ou methode non gere par cette objet"

Qu'est-ce que je fais d'incorecte? peux-tu m'envoyer le fichier, ca serais plus sur, car je ne suis pas habile comme toi en VBA.

Re le forum

Le fichier :

Mytå

Myta, je viens de m'apercevoir que tu m'avais envoye une nouvelle macro pour Excel2003, je l'essai!

Re le forum

Une petite erreur les 0A ne s'affiche pas

Remplace

Tablo(Int(CelDec / 16), CelDec Mod 16) = Format(Cel.Offset(, I + 1), "00")

Par

Tablo(Int(CelDec / 16), CelDec Mod 16) = CStr(Cel.Offset(, I + 1))

Mytå

Myta, je vais modifie pour le 0A, c'est drole j'emploi justement ce code dans un petit protocole de communication serie et il se place a la fin d'une trame pour signifier au FIFO qu'elle est complete!

Salut Banzai,

j'ai une petite base de donnee que je voudrais inserer dans notre tableau. Il est sur la feuille "DONNEES". Les explications sont dans la feuille.

Capucin

Bonjour

A vérifier

Salut, c'est tres bien ce que tu m'a fais, j'aime bien ton idee de mettre en couleur les cellules qui viennent du 2ieme tableau!

J'ai remarque que les 2 macros avaient un apostrophe devant et que tu avais mis "option explicite" est-ce obligatoire?

Pourrais-tu transferer les 2 macros vers mon application. Le tableau resultant doit se trouver sur la feuille "ASS compile" et debuter a la colonne 11.

9forum-24.zip (154.66 Ko)

Bonjour

CAPUCIN a écrit :

J'ai remarque que les 2 macros avaient un apostrophe devant et que tu avais mis "option explicite" est-ce obligatoire?

Un apostrophe où ?

Option Explicit évites beaucoup d'erreur de codage

Sans cette option on pourrait utiliser une variable qui ressemble à une autre sans s'en rendre compte et la macro ne pourrait pas faire ce que l'on attendait d'elle

Sans déclaration

Ligne = 10
For J = 20 to Lige Step -1
' traitement
Next J

Ce code fonctionne mais la boucle irait jusqu'à 0, ce qui n'était pas le but recherché

Avec Option Explicit, l'interpréteur aurait signalé que la variable Ligne est non définie, et le code ne s'exécuterait pas

Ton fichier avec un bouton dans la page "ASS Compile"

tres bien!

Petite question: Si je met une formule dans 2000 cellules d'une feuille qui n'est pas celle active, est-ce qu'elle vont ralentir quand meme mon application? si oui, j'imagine qu'avec du VBA je reglerais le probleme.

Bonsoir

CAPUCIN a écrit :

Si je met une formule dans 2000 cellules d'une feuille qui n'est pas celle active, est-ce qu'elle vont ralentir quand meme mon application?

Pas sur (Suis très loin de tout connaitre)

Ce que j'en pense

Chaque modification d'une cellule va déclencher le calcul des formules de la page contenant la cellule modifiée

La vitesse des calculs dans la page "sans formule" n'est pas influencée par le fait que sur autre page il y ait des formules

Il faut tester car franchement aucune idée

Je dois creer dans un dernier tableau, le format INTEL hex. Ce format permet d'envoyer les donnees du tableau vers l'exterieur du PC, soit de la memoire EEPROM. Peut etre que le "checksum" pourrait etre fait par une formule. Regarde dans la feuille "INTEL hex".

13logiciel-26-forum.zip (299.13 Ko)

Bonsoir

Depuis le temps tu devrais savoir qu'avec un exemple cela devient facile à comprendre ce que tu veux

A te lire

Rechercher des sujets similaires à "produire tableau reorganise"