Cherche l'erreur du code

Bonsoir les amis, svp j'ai besoin de votre aide . En ce moment j'essaye de me former en VBA et je bloque sur un code:

je souhaite créer un bouton ActiveX qui crée une séquence de nombre selon la valeur insérée dans la case B2. C’est à dire, si j’ajoutes le chiffre 1 alors je verrais un modèle allant d’un en un. Si j’écris 5, ce modèle ira de cinq en cinq, et ainsi de suite, de A1 jusque A100.

voici le code qui m'est donné pour la résolution :

Private Sub CommandButton1_Click()

Dim X As Octet

Dim Y As Octet

X = 1

Y = Range("B1")

Do

Range("A" & X) = Y

X = X + 1

Y = Y + Range("B1")

Loop Until X = 101

End Sub

mais lorsque j’exécute le bouton l'information suivant apparaît :

erreur de compilation: type défini par l'utilisateur non défini

je comprend pas ou est l'erreur du code.aidez moi

Bonjour,

... Dim X As Octet ... octet n'est pas un type reconnu.

Utilise Byte ou Integer ou Long ou ...

ric

Bonjour,

Un début de réponse (pas convaincu !...).

Cdlt.

Private Sub CommandButton1_Click()
Dim n As Integer, i As Integer, iStep As Integer, k As Integer
    n = 100
    With Me
        iStep = .Cells(1, 2).Value
        For i = 1 To n Step iStep
            k = k + 1
            .Cells(k, 1).Value = IIf(k = 1, iStep, k * iStep)
        Next i
    End With
End Sub

Salut benich,

salut l'équipe,

En bouton :

Do
    X = X + 1
    Range("A" & X).Value = X * [B2]
Loop Until X = 100

En colonne [C], la version formule :

=SI($B$2>0;LIGNE()*$B$2;"")

A+

2cmdstep.xlsm (20.29 Ko)

Bonjour benich93, le forum,

rappels :

bit = abréviation de « binary digit » = chiffre binaire (0 ou 1)

byte = octet (en français) = groupement de 8 bits

1 octet de 8 bits :

valeur minimum : 00000000 (en binaire) = 0 (en décimal)

valeur maximum : 11111111 (en binaire) = 255 (en décimal)

voilà pourquoi un Byte ne peut être utilisé que pour des nombres de 0 à 255


tout ce qui précède est pour un nombre non signé (= nombre sans signe, considéré comme positif).

VBA ne possède pas le type shortint du langage Pascal (= octet signé).

un octet signé, c'est un octet pour lequel le 1er bit de gauche représente le signe : 0 = positif ; 1 = négatif

il y a donc à droite 7 bits pour le nombre, d'où une valeur qui peut être comprise entre -128 et +127

si y'a -128 et pas de +128, c'est car y'a le 0, mais pas de -0, donc :

chaque tranche fait bien 128 possibilités (nombres différents)


les 2 types Integer et Long de VBA sont bien sûr pour des nombres entiers signés.

(car ils servent pour des nombres positifs et négatifs)

dhany

Bonjour,

Pas besoin de boucle pour ça :

Sub Test()

    Range("A1").Value = Range("B1").Value
    Range("A2").Value = Range("B1").Value * 2
    Range("A1:A2").AutoFill Range("A1:A101")

End Sub

Merci à tous pour votre aide. j'apprend enormement.

Rechercher des sujets similaires à "cherche erreur code"