OVH Cloud OVH Cloud

Range

4 réponses
Avatar
William
Bonjour,

quand j'utilise Range et que j'exécute mon userform, il me marque une erreur
"la méthode Rnge de l'objet _global a échoué.

je n'arrive pas à résoudre ce problème

voici mon code

Private Sub noms_Click()
End Sub
Private Sub CommandButton1_Click()
Sheets("machine").Select
Range(5) = noms.Value
End Sub

En fait c'est un formulaire (combobox + un bouton de validation) et je veux
enregistrer l'info que j'ai rentré dans la combobox "noms" dans une cellule
de ma feuille "machine"

merci pour votre aide

William

4 réponses

Avatar
Denis Michon
Bonjour William,

"Range(5) = noms.Value"

Pour désigner un "Range", tu as besoin de la lettre d'une colonne et d'un numéro de lignes : Range("A5") par exemple.

Private Sub CommandButton1_Click()
With Sheets("machine")
'Si le combobox affiche quelque chose
if userform1.noms.listindex <> -1 then
.Range("A5") = Userform1.noms.text
End if
end with
End Sub


Salutations!



"William" a écrit dans le message de news:%
Bonjour,

quand j'utilise Range et que j'exécute mon userform, il me marque une erreur
"la méthode Rnge de l'objet _global a échoué.

je n'arrive pas à résoudre ce problème

voici mon code

Private Sub noms_Click()
End Sub
Private Sub CommandButton1_Click()
Sheets("machine").Select
Range(5) = noms.Value
End Sub

En fait c'est un formulaire (combobox + un bouton de validation) et je veux
enregistrer l'info que j'ai rentré dans la combobox "noms" dans une cellule
de ma feuille "machine"

merci pour votre aide

William
Avatar
William
merci michel,

mais dis moi, à quoi ça sert le point devant range?

"Denis Michon" a écrit dans le message de news:
5ZcFc.76$%
Bonjour William,

"Range(5) = noms.Value"

Pour désigner un "Range", tu as besoin de la lettre d'une colonne et d'un
numéro de lignes : Range("A5") par exemple.


Private Sub CommandButton1_Click()
With Sheets("machine")
'Si le combobox affiche quelque chose
if userform1.noms.listindex <> -1 then
.Range("A5") = Userform1.noms.text
End if
end with
End Sub


Salutations!



"William" a écrit dans le message de
news:%

Bonjour,

quand j'utilise Range et que j'exécute mon userform, il me marque une
erreur

"la méthode Rnge de l'objet _global a échoué.

je n'arrive pas à résoudre ce problème

voici mon code

Private Sub noms_Click()
End Sub
Private Sub CommandButton1_Click()
Sheets("machine").Select
Range(5) = noms.Value
End Sub

En fait c'est un formulaire (combobox + un bouton de validation) et je
veux

enregistrer l'info que j'ai rentré dans la combobox "noms" dans une
cellule

de ma feuille "machine"

merci pour votre aide

William





Avatar
michdenis
Bonjour William

"mais dis moi, à quoi ça sert le point devant range?"

à signifier que l'objet Range est un objet appartenant à un autre objet , dans ce cas, un objet feuille.

C'est la même chose que d'écrire :

Worksheets("Feuil1").Range("A2"). ......mais avec une présentation différente

'--------------
With Worksheets("Feuil1")
.range("A2") .........

End With
'--------------

L'avantage de la dernière syntaxe, c'est que tu peux éviter de sélectionner les objets et cela augmente la vitesse
d'exécution du code, et si tu observes bien, à l'écran, il n'y a pas de déplacement des feuilles, tout se passe en
douceur !

IL y a aussi le fait qu'entre With ... et End With, tu peux appeler toute une Kyrielle de propriétés ou de méthode de
la feuille sans avoir à répéter à chaque ligne Worksheets("Feuil1"). Tu n'as qu'à insérer un point devant la méthode ou
la propriété appartenant à cette feuille.

Cette syntaxe rend la lecture du code beaucoup plus facile.

Voici un autre exemple pour illustrer :

'--------------
With Worksheets("Feuil1")
With .range("A2")
.Font.colorindex = 3
.Interior.colorindex = 25
end with
.Range("A25:G26") .range("Z25")
'.../.... etc.
End With
'--------------


Salutations!




"William" a écrit dans le message de news:
merci michel,

mais dis moi, à quoi ça sert le point devant range?

"Denis Michon" a écrit dans le message de news:
5ZcFc.76$%
Bonjour William,

"Range(5) = noms.Value"

Pour désigner un "Range", tu as besoin de la lettre d'une colonne et d'un
numéro de lignes : Range("A5") par exemple.


Private Sub CommandButton1_Click()
With Sheets("machine")
'Si le combobox affiche quelque chose
if userform1.noms.listindex <> -1 then
.Range("A5") = Userform1.noms.text
End if
end with
End Sub


Salutations!



"William" a écrit dans le message de
news:%

Bonjour,

quand j'utilise Range et que j'exécute mon userform, il me marque une
erreur

"la méthode Rnge de l'objet _global a échoué.

je n'arrive pas à résoudre ce problème

voici mon code

Private Sub noms_Click()
End Sub
Private Sub CommandButton1_Click()
Sheets("machine").Select
Range(5) = noms.Value
End Sub

En fait c'est un formulaire (combobox + un bouton de validation) et je
veux

enregistrer l'info que j'ai rentré dans la combobox "noms" dans une
cellule

de ma feuille "machine"

merci pour votre aide

William





Avatar
William
ah oui!!!!
je vois que ca peut faire gagner aussi bcp de temps!!!
lol

encore merci


"michdenis" a écrit dans le message de news:

Bonjour William

"mais dis moi, à quoi ça sert le point devant range?"

à signifier que l'objet Range est un objet appartenant à un autre objet ,
dans ce cas, un objet feuille.


C'est la même chose que d'écrire :

Worksheets("Feuil1").Range("A2"). ......mais avec une présentation
différente


'--------------
With Worksheets("Feuil1")
.range("A2") .........

End With
'--------------

L'avantage de la dernière syntaxe, c'est que tu peux éviter de
sélectionner les objets et cela augmente la vitesse

d'exécution du code, et si tu observes bien, à l'écran, il n'y a pas de
déplacement des feuilles, tout se passe en

douceur !

IL y a aussi le fait qu'entre With ... et End With, tu peux appeler
toute une Kyrielle de propriétés ou de méthode de

la feuille sans avoir à répéter à chaque ligne Worksheets("Feuil1"). Tu
n'as qu'à insérer un point devant la méthode ou

la propriété appartenant à cette feuille.

Cette syntaxe rend la lecture du code beaucoup plus facile.

Voici un autre exemple pour illustrer :

'--------------
With Worksheets("Feuil1")
With .range("A2")
.Font.colorindex = 3
.Interior.colorindex = 25
end with
.Range("A25:G26") .range("Z25")
'.../.... etc.
End With
'--------------


Salutations!




"William" a écrit dans le message de
news:

merci michel,

mais dis moi, à quoi ça sert le point devant range?

"Denis Michon" a écrit dans le message de news:
5ZcFc.76$%
Bonjour William,

"Range(5) = noms.Value"

Pour désigner un "Range", tu as besoin de la lettre d'une colonne et
d'un


numéro de lignes : Range("A5") par exemple.

Private Sub CommandButton1_Click()
With Sheets("machine")
'Si le combobox affiche quelque chose
if userform1.noms.listindex <> -1 then
.Range("A5") = Userform1.noms.text
End if
end with
End Sub


Salutations!



"William" a écrit dans le message de
news:%

Bonjour,

quand j'utilise Range et que j'exécute mon userform, il me marque une
erreur

"la méthode Rnge de l'objet _global a échoué.

je n'arrive pas à résoudre ce problème

voici mon code

Private Sub noms_Click()
End Sub
Private Sub CommandButton1_Click()
Sheets("machine").Select
Range(5) = noms.Value
End Sub

En fait c'est un formulaire (combobox + un bouton de validation) et je
veux

enregistrer l'info que j'ai rentré dans la combobox "noms" dans une
cellule

de ma feuille "machine"

merci pour votre aide

William