Décomposer un nombre

  • Initiateur de la discussion Initiateur de la discussion Claudy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Claudy

XLDnaute Accro
Bonjour,
pour décomposer un nombre de huit chiffres à replaxer dans huit colonnes, j'ai trouvé dans ce forum la macro suivante que j'ai adapté à mes besoins...
Mais elle "bugge" sur le MID :
Erreur de complation, projet ou bibliothèque introuvable!
Merci d'avance pour votre aide.

Sub Macro2()
'
Dim i As Byte
Dim zaza As String
zaza = Application.InputBox("Donner l'index du compteur eaux:")

For i = 1 To 8
Cells(7, i + 15) = Mid(zaza, i, 1)
Next i
End Sub
 
Re : Décomposer un nombre

Bonjour
regarde si de cette façon ça irais mieux?
Code:
Sub Macro2()
'
Dim i As Byte
Dim zaza As String
zaza = Application.InputBox("Donner l'index du compteur eaux:")
toto = Len(zaza)
For i = 1 To toto
Cells(1, i) = Mid(zaza, i, 1)
Next i
End Sub
 
Re : Décomposer un nombre

Bonjour,
pour décomposer un nombre de huit chiffres à replaxer dans huit colonnes, j'ai trouvé dans ce forum la macro suivante que j'ai adapté à mes besoins...
Mais elle "bugge" sur le MID :
Erreur de complation, projet ou bibliothèque introuvable!
Merci d'avance pour votre aide.

Sub Macro2()
'
Dim i As Byte
Dim zaza As String
zaza = Application.InputBox("Donner l'index du compteur eaux:")
For i = 1 To 8
Cells(7, i + 15) = Mid(zaza, i, 1)
Next i
End Sub

Bonjour

Cette procédure fonctionne très bien sans bug chez moi

Cdlt

RGI
 
Re : Décomposer un nombre

Bonjour
regarde si de cette façon ça irais mieux?
Code:
Sub Macro2()
'
Dim i As Byte
Dim zaza As String
zaza = Application.InputBox("Donner l'index du compteur eaux:")
toto = Len(zaza)
For i = 1 To toto
Cells(1, i) = Mid(zaza, i, 1)
Next i
End Sub

🙂Bonjour,

Pour les non-initiés serait-il possible d'avoir en clair la signification du code ?

Merci.

🙂
 
Re : Décomposer un nombre

Bonjour Claudy, CB60 🙂,
J'ai testé ton code, Claudy, et je n'ai aucun message d'erreur...
Par contre, comme le propose CB60, j'aurait tendance à utiliser Len pour faire un test, et quelques tests supplémentaires d'ailleurs :
Code:
Sub Macro2()
'
Dim I As Byte
Dim Zaza As String
Dim Vérification As Byte
Refaire:
Zaza = Application.InputBox("Donner l'index du compteur eaux:")
If Len(Zaza) <> 8 Then GoTo Erreur ' Vérifie si tu as 8 caractères
' Vérifie si ce sont bien des valeurs numériques
On Error GoTo Erreur
For I = 1 To 8
Vérification = Mid(Zaza, I, 1)
Next I
On Error GoTo 0
For I = 1 To 8
Cells(7, I + 15) = Mid(Zaza, I, 1)
Next I
Exit Sub
Erreur:
Dim J As Integer
J = MsgBox("Veuillez rentrer 8 chiffres !", vbCritical + vbOKCancel)
If J = vbCancel Then Exit Sub
GoTo Refaire
End Sub
Il manque juste un test sur lequel je butte, c'est si tu annules l'inputbox.
Bon WE 😎
 
Re : Décomposer un nombre

Re 🙂,
Pour Papypog :
Code:
Sub Macro2()
Dim i As Byte ' Déclare la variable i comme entier de 0 à 255
Dim zaza As String ' Déclare la variable zaza comme texte
' Ouvre une boîte de dialogue et renseigne la variable zaza avec la réponse de l'utilisateur
zaza = Application.InputBox("Donner l'index du compteur eaux:")
toto = Len(zaza) ' Calcule le nombre de caractères de zaza (toto n'est pas déclaré...)
For i = 1 To toto ' Ouverture d'une boucle qui incrémente i à chaque boucle
Cells(1, i) = Mid(zaza, i, 1) ' Remplit la cellule avec le(s) caractère(s) choisis dans zaza
' Mid(Chaine de caractère, premier caractère choisi, nombre de caractère à prendre)
Next i ' Recommence la boucle
End Sub
Bon WE 😎
 
Re : Décomposer un nombre

Re 🙂,
A CB60 : Byte (0 à 255) ou Integer (-32 768 à 32 767).
Tableau fourni dans l'aide :
Type de données Taille d'enregistrementPlage
Byte1 octet0 à 255
Boolean2 octetsTrue ou False
Integer2 octets-32 768 à 32 767
Long(entier long)4 octets-2 147 483 648 à 2 147 483 647
Single(à virgule flottante en simple précision)4 octets-3,402823E38 à -1,401298E-45 pour les valeurs négatives ; 1,401298E-45 à 3,402823E38 pour les valeurs positives
Double(à virgule flottante en double précision)8 octets-1,79769313486231E308 à
-4,94065645841247E-324 pour les valeurs négatives ; 4,94065645841247E-324 à 1,79769313486232E308 pour les valeurs positives
Currency(entier à décalage)8 octets-922 337 203 685 477,5808 à 922 337 203 685 477,5807
Decimal14 octets+/-79 228 162 514 264 337 593 543 950 335 sans séparateur décimal ; +/-7,9228162514264337593543950335 avec 28 chiffres à droite du séparateur décimal ; le plus petit nombre différent de zéro est +/-0.0000000000000000000000000001.
Date8 octets1er janvier 100 au 31 décembre 9999
Object4 octetsToute référence à des données de type
ObjectString(longueur variable)10 octets + longueur de la chaîne0 à environ 2 milliards
String(longueur fixe)Longueur de la chaîne1 à environ 65 400
Variant(nombres)16 octetsToute valeur numérique, avec la même plage de valeurs qu'une donnée de type
DoubleVariant(caractères)22 octets + longueur de la chaîneMême plage de valeurs qu'une donnée de type String de longueur variableType défini par l'utilisateur
(avec Type)En fonction des élémentsLa plage de valeurs de chaque élément correspond à celle de son type de données.
 
Re : Décomposer un nombre

Re à tous

une version améliorée avec explication sur la feuille

comme le dit souvent JCGL, il vaut mieux une formule qu'une macro car les formules donnent des résultats instantanés tandis que les macros sont toujours plus lentes

bon week-end à tous
 

Pièces jointes

Re : Décomposer un nombre

Ok merci à tous,
Merci pour le classeur...
Mais malgré tous vos conseils de sécurité et macros, il bugge toujours sur MID
Et même si le classeur me permet de contourner le problème, il faut que je trouve le pourquoi il bugge.
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
903
Réponses
2
Affichages
1 K
Réponses
7
Affichages
1 K
Retour