Produire un tableau "reorganise"

j'espere que ce sera suffisant , j'ai rajouter des fleches, mis un peu de couleur et rempli une ligne de tableau.

Si jamais tu trouve ma demande trop grande ou si tu veux passer a autre chose, dis moi le, je comprendrai.

15logiciel-26-forum.zip (275.46 Ko)

Bonsoir

Je m'explique mal

Les données pour les recopier un simple copier/coller suffit

Pour l'adresse Octet poids faible d'abord ensuite octet de poids fort ou l'inverse ?

Cheksum : Je veux bien mais un complément à deux ??????

Il faut le noter en Hexa ou en décimal ?

Je t'ai mis la reponse a tes questions sur la feuille excel. J'aurais donne une exemple pour les adresses.

P.S. Prend le temps qu'il faut!

15logiciel-26-forum.zip (276.47 Ko)

Bonjour

Ce n'est pas que je veuille pas le faire mais d'une question tu me retourne une autre énigme

Banzai64 a écrit :

Cheksum : Je veux bien mais un complément à deux ??????

Réponse:

le complement 2 est un complement 1 +01Hexa.

Maintenant question

Un complément à 1 ???????

Si tu me réponds c'est un complément à 10 auquel on retranche 9, j'abandonne

Quand je dis il faut faire un exemple minimum

Voici: si j'ai la valeur AA Hexa ca fait en binaire: 1010 1010

" Le complement 1" de ce nombre est : 0101 0101 (on inverse tout les bits)

pour ce qu'on apelle complement 2, on prend le complement 1 donc ici 0101 0101 et on ajoute toujours 0000 0001

donc ici on obtiendrais : 0101 0101

+ 0000 0001

----------------

0101 01 10 (56Hexa)

Si tu prefere, je pourrais ecrire directement dans la cellule Checksum, une formul qui fait cela, donc tu n'aurais qu'a faire tout le tableau moins cette colonne.

Bonjour

Regardes mais pour le CheckSum pas évident

Le tableau est tres bien et le checksum est bien calcule! j'ai seulement oublie de te dire qu'on ne garde que les 2 premier chiffres sur les 4, c'est le protocole INTEL hex qui veut ca. Je t'ai mis plus d'informations sur la feuille "INTEL hex".

Et merci d'avoir signaler les 3 erreurs. Entre autre, je devrai remplacer les X par des codes valides.

Encore une fois merci pour l'effort, je suis tres content!

10logiciel-26-forum.zip (276.47 Ko)

Bonjour

Tu as remis le même fichier

Modification dans celui-ci

Vérifies bien le CheckSum

Salut Banzai, j'espere que tu as pu te reposer un peu!

Le checksum n'est plus exacte dans la version que tu viens de m'envoyer .je te renvoi la version 005 dont le checksum que tu avais calcule etait bon. Et cette fois, les explications vont suivre.

Bonjour

CAPUCIN a écrit :

Le tableau est tres bien et le checksum est bien calcule! j'ai seulement oublie de te dire qu'on ne garde que les 2 premier chiffres sur les 4, c'est le protocole INTEL hex qui veut ca

Quand tu as marqué cela il fallait que je comprenne

j"ai oublie de te dire qu'on laisse tombe le Hi byte du cheksum

Donc le checksum est représenté par l'octet de poids faible

A vérifier

TOUT A FAIT PARFAIT!

Pour te faire un petit resume de l'ensemble (et je te le dois bien), je peux maintenant editer sous excel un programme en language "assembleur" et envoye le resultat (grace au tableau "INTEL hex") vers l'exterieur du PC, par exemple afin de mettre le programme dans une memoire de type EEPROM. Tout ca, sur EXCEL!

Merci Banzai!

P.S. excuse les termes employe comme "hi byte" ce sont les termes que j'ai appris en electronique.

salut Banzai, je viens de realiser qu'on traine une toute petite erreur depuis qu'on a passe de la version Capucin EQUIV017 a EQUIV018. Tu as remplacer le code que j'ai mis en bleu par le code en rouge et depuis ce temps lorsque dans une cellule la donnee commence par zero et qu'elle n'est pas suivi d'une lettre, exemple "02", seul le "2" aparait. Le code est dans le module "compilation" si je ne me trompe pas.

Je t'envoi le fichier EQUIV019. tu peux aussi corriger directement dans cette envoi.

Le probleme est sur la feuille "traitement". Regarde les cellule que j'ai mis en vert. Je t'ai mis un bouton pour essayer la macro "traitement"

Sub Traitement()
' On est dans la feuille Traitements
Dim J As Long
Dim Cel As Range
Dim Depart As String
Dim Kase
Dim Lg As Long
Dim Tablo
Dim I As Integer
Dim Reference As Integer

  Lg = Range("I" & Rows.Count).End(xlUp).Row
  Range("B2:G" & Lg).ClearContents

  With Application
    .ScreenUpdating = False
    Reference = .ReferenceStyle             ' Sauvegarde l'ancien type de référence sous le nom "reference"
    .ReferenceStyle = xlA1                  ' Pour les formules il faut Référence style A1
  End With

  ReDim Tablo(1 To Lg, 1 To 5)              ' Prépare un tableau qui va contenir le résulat des "traductions"

  For Each Kase In [Cat]                    ' Pour chaque élément de la zone des mnémoniques
    Set Cel = Range("I3:I" & Lg).Find(what:=Kase, LookIn:=xlValues, lookat:=xlWhole)    ' On vérifie si on le trouve dans la colonne I
    If Not Cel Is Nothing Then              ' Au moins une occurence
      Depart = Cel.Address                  ' Méthode classique de Find (voir aide)
      Do
        J = Cel.Row - 2                     ' Décalage entre la première ligne testée de la colonne I et le 1er élément du tableau (Tablo)
        If Tablo(J, 5) = "" Then            ' Tablo pas encore initialisé (par une autre mnémonique)
          For I = 1 To 4                    ' On recopie dans le tableau les 4 éléments associés à la mnémonique
            Tablo(J, I) = Kase.Offset(0, I) ' Nouvelle formule que l'on peut inscrire directement
          Next I
          Tablo(J, 5) = "X"                 ' On note ligne initialisée
        End If
        Set Cel = Range("I3:I" & Lg).FindNext(Cel)  ' On va voir si un autre élément de la colonne I est concerné
      Loop While Not Cel Is Nothing And Cel.Address <> Depart
    End If
  Next Kase

  Range("C3").Resize(Lg, 4) = Tablo         ' On écrit le tableau

  With Application
    .ReferenceStyle = Reference             ' On remet comme avant

  End With
  'desactivation des formules
[color=#4000FF]  'Range("C2:F" & Lg).Select
  'Selection.Copy
 ' Selection.PasteSpecial Paste:=xlPasteValues, OPERATION:=xlNone, skipBlanks:=False, Transpose:=False[/color]

  [color=#BF0000]With Range("C2:F" & Lg)
    .Value = .Value
  End With[/color]

End Sub

les couleurs bleu et rouge ne semblent pas avoir marche dans ce que je viens de t'envoyer , alors regarde le code au bas de la macro "desactiver les formules" le mien est en commentaire suivi du tien.

Bonsoir

Oui j'ai vu

Une question : Est-ce important pour la EEPROM , la valeur est identique ?

Pour la correction modifies la fin de la macro par

  With Range("C2:F" & Lg)
  .NumberFormat = "@"
    .Value = .Value
  End With

End Sub

Dis-moi si c'est ce que tu voulais ?

C'est corrige!

Pour ta question, ce n'est probablement pas une erreur pour l'envoi vers une memoire EEPROM, mais c'est plus lisible.

Merci Banzai et bonne soiree!

Rechercher des sujets similaires à "produire tableau reorganise"