Mais Erreur 70 : Impossible de définir la propriété List. Acces Refusé sur la ligne Me.ListBox1.List(i, y) = Cells(1, y + 1)
J'ai pas préciser que j'alimente ListBox1 grâce à l'initialisation ci-dessous :
Private Sub UserForm_Initialize() ListBox1.RowSource = ("Feuil1!Base1") ListBox1.ListIndex = -1 End Sub
"Base1" etant faite par Insertion/Nom/Définir dans la feuille "Feuil1"
Dans l'idéal, double clic dans la ligne, modifier les valeurs et clic sur un bouton valider !
Merci de votre aide
michdenis
Bonjour,
| j'alimente ListBox1 grâce à l'initialisation |ci-dessous :
| ListBox1.RowSource = ("Feuil1!Base1")
Pour modifier le contenu de la listBox, il faudrait modifier le contenu des cellules de la plage ("Feuil1!Base1"). Si tu veux modifier directement un listbox, utilise ceci pour définir le contenu de ton ListBox. Exemple : '-------------------------------- Private Sub UserForm_Initialize() With Me.ListBox1 .BoundColumn = 1 .ColumnCount = 3 .ColumnWidths = "50;50;50" .List = Range("Feuil1!A1:C10").Value End With End Sub '--------------------------------
Pour modifier le contenu du listbox de la colonne 3 de l'item sélectionné :
'------------------------------------ Dim Colonne As Integer
With Me.ListBox1 If .ListIndex = -1 Then Exit Sub 'Modifier le contenu de la 3 ième colonne 'du listbox de l'item sélectionné 'La colonne 1 débute à zéro dans un listbox. Colonne = 3 - 1 .List(.ListIndex, Colonne) = "boxo" End With '------------------------------------
"DAVID" a écrit dans le message de groupe de discussion :
Bonsoir
Comment modifier la valeur d'une ligne d'une ListBox à 10 colonnes. Je m'explique ! J'alimente une ListBox formaté avec Columm Count à la valeur 10.
J'aimerais après avoir cliqué sur un bouton modifier la ligne sélectionné.
Des pistes ?
Merci de votre aide
Cordialement
David
Bonjour,
| j'alimente ListBox1 grâce à l'initialisation |ci-dessous :
| ListBox1.RowSource = ("Feuil1!Base1")
Pour modifier le contenu de la listBox, il faudrait modifier le
contenu des cellules de la plage ("Feuil1!Base1"). Si tu veux
modifier directement un listbox, utilise ceci pour définir le
contenu de ton ListBox.
Exemple :
'--------------------------------
Private Sub UserForm_Initialize()
With Me.ListBox1
.BoundColumn = 1
.ColumnCount = 3
.ColumnWidths = "50;50;50"
.List = Range("Feuil1!A1:C10").Value
End With
End Sub
'--------------------------------
Pour modifier le contenu du listbox de la colonne 3
de l'item sélectionné :
'------------------------------------
Dim Colonne As Integer
With Me.ListBox1
If .ListIndex = -1 Then Exit Sub
'Modifier le contenu de la 3 ième colonne
'du listbox de l'item sélectionné
'La colonne 1 débute à zéro dans un listbox.
Colonne = 3 - 1
.List(.ListIndex, Colonne) = "boxo"
End With
'------------------------------------
"DAVID" <direction-ternoise@wanadoo.fr> a écrit dans le message de groupe de discussion :
uqOM4o8kKHA.5608@TK2MSFTNGP05.phx.gbl...
Bonsoir
Comment modifier la valeur d'une ligne d'une ListBox à 10 colonnes.
Je m'explique !
J'alimente une ListBox formaté avec Columm Count à la valeur 10.
J'aimerais après avoir cliqué sur un bouton modifier la ligne sélectionné.
| j'alimente ListBox1 grâce à l'initialisation |ci-dessous :
| ListBox1.RowSource = ("Feuil1!Base1")
Pour modifier le contenu de la listBox, il faudrait modifier le contenu des cellules de la plage ("Feuil1!Base1"). Si tu veux modifier directement un listbox, utilise ceci pour définir le contenu de ton ListBox. Exemple : '-------------------------------- Private Sub UserForm_Initialize() With Me.ListBox1 .BoundColumn = 1 .ColumnCount = 3 .ColumnWidths = "50;50;50" .List = Range("Feuil1!A1:C10").Value End With End Sub '--------------------------------
Pour modifier le contenu du listbox de la colonne 3 de l'item sélectionné :
'------------------------------------ Dim Colonne As Integer
With Me.ListBox1 If .ListIndex = -1 Then Exit Sub 'Modifier le contenu de la 3 ième colonne 'du listbox de l'item sélectionné 'La colonne 1 débute à zéro dans un listbox. Colonne = 3 - 1 .List(.ListIndex, Colonne) = "boxo" End With '------------------------------------
"DAVID" a écrit dans le message de groupe de discussion :
Bonsoir
Comment modifier la valeur d'une ligne d'une ListBox à 10 colonnes. Je m'explique ! J'alimente une ListBox formaté avec Columm Count à la valeur 10.
J'aimerais après avoir cliqué sur un bouton modifier la ligne sélectionné.
Des pistes ?
Merci de votre aide
Cordialement
David
DAVID
Bonjour et merci de ton aide
Ya un truc que je ne comprend pas.
Dans Excelabo, je lis qu'il vaux mieux déclarer les plages avec Insertion/nom et quand je lis les messages du forum c'est souvent que je vois Range("Feuil1!A1:C10").Value !!
Quelle est la différence ?
Cordialement
David
Bonjour et merci de ton aide
Ya un truc que je ne comprend pas.
Dans Excelabo, je lis qu'il vaux mieux déclarer les plages avec
Insertion/nom et quand je lis les messages du forum c'est souvent que je
vois Range("Feuil1!A1:C10").Value !!
Dans Excelabo, je lis qu'il vaux mieux déclarer les plages avec Insertion/nom et quand je lis les messages du forum c'est souvent que je vois Range("Feuil1!A1:C10").Value !!
Quelle est la différence ?
Cordialement
David
Daniel.C
Bonjour. Tu peux utiliser les deux. Tu peux d'ailleurs nommer la plage Range("Feuil1!A1:C10") et utiliser ce nom. L'avantage des noms est qu'ils te permettent d'utiliser une plage nommée dynamique. Par exemple : Insertion / Nom / Définir : "maPlage", "Fait référence à :" : Decaler(Feuil1!$A$1;;;NbVal(Feuil1!$A:$A)) (éventuellement, reporte-toi à l'aide sur la fonction DECALER) Tu obtiens ainsi une plage débutant en A1 et d'une longueur égale au nombre de valeurs contenues dans la colonne A. Un inconvénient toutefois : ta plage ne doit pas contenir de cellules vides. Cordialement. Daniel
Bonjour et merci de ton aide
Ya un truc que je ne comprend pas.
Dans Excelabo, je lis qu'il vaux mieux déclarer les plages avec Insertion/nom et quand je lis les messages du forum c'est souvent que je vois Range("Feuil1!A1:C10").Value !!
Quelle est la différence ?
Cordialement
David
Bonjour.
Tu peux utiliser les deux. Tu peux d'ailleurs nommer la plage
Range("Feuil1!A1:C10") et utiliser ce nom.
L'avantage des noms est qu'ils te permettent d'utiliser une plage
nommée dynamique. Par exemple :
Insertion / Nom / Définir : "maPlage", "Fait référence à :" :
Decaler(Feuil1!$A$1;;;NbVal(Feuil1!$A:$A))
(éventuellement, reporte-toi à l'aide sur la fonction DECALER)
Tu obtiens ainsi une plage débutant en A1 et d'une longueur égale au
nombre de valeurs contenues dans la colonne A.
Un inconvénient toutefois : ta plage ne doit pas contenir de cellules
vides.
Cordialement.
Daniel
Bonjour et merci de ton aide
Ya un truc que je ne comprend pas.
Dans Excelabo, je lis qu'il vaux mieux déclarer les plages avec Insertion/nom
et quand je lis les messages du forum c'est souvent que je vois
Range("Feuil1!A1:C10").Value !!
Bonjour. Tu peux utiliser les deux. Tu peux d'ailleurs nommer la plage Range("Feuil1!A1:C10") et utiliser ce nom. L'avantage des noms est qu'ils te permettent d'utiliser une plage nommée dynamique. Par exemple : Insertion / Nom / Définir : "maPlage", "Fait référence à :" : Decaler(Feuil1!$A$1;;;NbVal(Feuil1!$A:$A)) (éventuellement, reporte-toi à l'aide sur la fonction DECALER) Tu obtiens ainsi une plage débutant en A1 et d'une longueur égale au nombre de valeurs contenues dans la colonne A. Un inconvénient toutefois : ta plage ne doit pas contenir de cellules vides. Cordialement. Daniel
Bonjour et merci de ton aide
Ya un truc que je ne comprend pas.
Dans Excelabo, je lis qu'il vaux mieux déclarer les plages avec Insertion/nom et quand je lis les messages du forum c'est souvent que je vois Range("Feuil1!A1:C10").Value !!
Quelle est la différence ?
Cordialement
David
michdenis
La différence n'est pas dans l'utilisation de la plage de cellules soit par Range("Feuil1!A1:C10") ou par plage nommée, mais plutôt l'utilisation de la propriété "List" plutôt que "RowSource" du contrôle "ListBox".
Ta question demandait comment faire pour modifier le contenu du contrôle "Listbox". Or, si tu utilises la propriété "RowSource" du listBox lie ce dernier à la plage de cellules et si tu essaies de modifier ce que le listbox affiche, il faudra que tu modifies le contenu de la plage de cellules utilisées en référence. La propriété ListBox utilise la notion de "Tableau" pour combler son contenu. Seules les données de la plage de cellules utilisées sont passées au contenu du ListBox et son contenu n'est plus lié à la plage de cellule. En conséquence, tu peux modifier le contenu du listbox sans affecter le contenu de la plage de cellules sources utilisé.
Il ne s'agit pas de savoir quelle est la meilleure méthode d'initialer le listbox mais d'utiliser la méthode qui correspond le mieux à l'usage que l'on veut faire du ListBox dans son application.
"DAVID" a écrit dans le message de groupe de discussion :
Bonjour et merci de ton aide
Ya un truc que je ne comprend pas.
Dans Excelabo, je lis qu'il vaux mieux déclarer les plages avec Insertion/nom et quand je lis les messages du forum c'est souvent que je vois Range("Feuil1!A1:C10").Value !!
Quelle est la différence ?
Cordialement
David
La différence n'est pas dans l'utilisation de la plage de cellules
soit par Range("Feuil1!A1:C10") ou par plage nommée, mais
plutôt l'utilisation de la propriété "List" plutôt que "RowSource"
du contrôle "ListBox".
Ta question demandait comment faire pour modifier le contenu
du contrôle "Listbox". Or, si tu utilises la propriété "RowSource"
du listBox lie ce dernier à la plage de cellules et si tu essaies de
modifier ce que le listbox affiche, il faudra que tu modifies le
contenu de la plage de cellules utilisées en référence.
La propriété ListBox utilise la notion de "Tableau" pour combler
son contenu. Seules les données de la plage de cellules utilisées
sont passées au contenu du ListBox et son contenu n'est plus
lié à la plage de cellule. En conséquence, tu peux modifier le
contenu du listbox sans affecter le contenu de la plage de cellules
sources utilisé.
Il ne s'agit pas de savoir quelle est la meilleure méthode d'initialer
le listbox mais d'utiliser la méthode qui correspond le mieux à l'usage
que l'on veut faire du ListBox dans son application.
"DAVID" <direction-ternoise@wanadoo.fr> a écrit dans le message de groupe de discussion :
uiNlJ8BlKHA.6096@TK2MSFTNGP02.phx.gbl...
Bonjour et merci de ton aide
Ya un truc que je ne comprend pas.
Dans Excelabo, je lis qu'il vaux mieux déclarer les plages avec
Insertion/nom et quand je lis les messages du forum c'est souvent que je
vois Range("Feuil1!A1:C10").Value !!
La différence n'est pas dans l'utilisation de la plage de cellules soit par Range("Feuil1!A1:C10") ou par plage nommée, mais plutôt l'utilisation de la propriété "List" plutôt que "RowSource" du contrôle "ListBox".
Ta question demandait comment faire pour modifier le contenu du contrôle "Listbox". Or, si tu utilises la propriété "RowSource" du listBox lie ce dernier à la plage de cellules et si tu essaies de modifier ce que le listbox affiche, il faudra que tu modifies le contenu de la plage de cellules utilisées en référence. La propriété ListBox utilise la notion de "Tableau" pour combler son contenu. Seules les données de la plage de cellules utilisées sont passées au contenu du ListBox et son contenu n'est plus lié à la plage de cellule. En conséquence, tu peux modifier le contenu du listbox sans affecter le contenu de la plage de cellules sources utilisé.
Il ne s'agit pas de savoir quelle est la meilleure méthode d'initialer le listbox mais d'utiliser la méthode qui correspond le mieux à l'usage que l'on veut faire du ListBox dans son application.
"DAVID" a écrit dans le message de groupe de discussion :
Bonjour et merci de ton aide
Ya un truc que je ne comprend pas.
Dans Excelabo, je lis qu'il vaux mieux déclarer les plages avec Insertion/nom et quand je lis les messages du forum c'est souvent que je vois Range("Feuil1!A1:C10").Value !!
Quelle est la différence ?
Cordialement
David
DAVID
Merci beaucoup à vous deux pour vos explications très complète
Cordialement
David
Merci beaucoup à vous deux pour vos explications très complète
Merci beaucoup à vous deux pour vos explications très complète
Cordialement
David
DAVID
Donc si je comprend bien. Il faut que j'utilise RowSource puisque je veux modifier l'intérieur d'une ListBox et que cela est lié au tableau de ma feuille et à la fin de la procédure j'actualise à nouveau ListBox afin qu'il se mette à jour. donc
J'initialise ListBox avec
Private Sub UserForm_Initialize() ListBox1.RowSource = ("BD!MaListe") ListBox1.ListIndex = -1 End Sub
Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
' Je mets un code ici pour modifier directement dans ListBox1 (écriture dans ListBox1)
'Initialisation à nouveau de la ListBox UserForm_Initialize
End Sub
Donc je mets quoi comme code ???
Merci de votre aide
David
Donc si je comprend bien. Il faut que j'utilise RowSource puisque je veux
modifier l'intérieur d'une ListBox et que cela est lié au tableau de ma
feuille et à la fin de la procédure j'actualise à nouveau ListBox afin qu'il
se mette à jour. donc
J'initialise ListBox avec
Private Sub UserForm_Initialize()
ListBox1.RowSource = ("BD!MaListe")
ListBox1.ListIndex = -1
End Sub
Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
' Je mets un code ici pour modifier directement dans ListBox1 (écriture dans
ListBox1)
'Initialisation à nouveau de la ListBox
UserForm_Initialize
Donc si je comprend bien. Il faut que j'utilise RowSource puisque je veux modifier l'intérieur d'une ListBox et que cela est lié au tableau de ma feuille et à la fin de la procédure j'actualise à nouveau ListBox afin qu'il se mette à jour. donc
J'initialise ListBox avec
Private Sub UserForm_Initialize() ListBox1.RowSource = ("BD!MaListe") ListBox1.ListIndex = -1 End Sub
Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
' Je mets un code ici pour modifier directement dans ListBox1 (écriture dans ListBox1)
'Initialisation à nouveau de la ListBox UserForm_Initialize
End Sub
Donc je mets quoi comme code ???
Merci de votre aide
David
michdenis
Voici un exemple : http://cjoint.com/?bntXZbtT4c
C'est à toi de décider de la méthode qu'il convient le mieux pour l'élaboration de ton application. Nous sommes là pour apporter une aide seulement.
"DAVID" a écrit dans le message de groupe de discussion :
Donc si je comprend bien. Il faut que j'utilise RowSource puisque je veux modifier l'intérieur d'une ListBox et que cela est lié au tableau de ma feuille et à la fin de la procédure j'actualise à nouveau ListBox afin qu'il se mette à jour. donc
J'initialise ListBox avec
Private Sub UserForm_Initialize() ListBox1.RowSource = ("BD!MaListe") ListBox1.ListIndex = -1 End Sub
Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
' Je mets un code ici pour modifier directement dans ListBox1 (écriture dans ListBox1)
'Initialisation à nouveau de la ListBox UserForm_Initialize
End Sub
Donc je mets quoi comme code ???
Merci de votre aide
David
Voici un exemple : http://cjoint.com/?bntXZbtT4c
C'est à toi de décider de la méthode qu'il convient le mieux
pour l'élaboration de ton application. Nous sommes là pour
apporter une aide seulement.
"DAVID" <direction-ternoise@wanadoo.fr> a écrit dans le message de groupe de discussion :
uuNCidHlKHA.2780@TK2MSFTNGP05.phx.gbl...
Donc si je comprend bien. Il faut que j'utilise RowSource puisque je veux
modifier l'intérieur d'une ListBox et que cela est lié au tableau de ma
feuille et à la fin de la procédure j'actualise à nouveau ListBox afin qu'il
se mette à jour. donc
J'initialise ListBox avec
Private Sub UserForm_Initialize()
ListBox1.RowSource = ("BD!MaListe")
ListBox1.ListIndex = -1
End Sub
Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
' Je mets un code ici pour modifier directement dans ListBox1 (écriture dans
ListBox1)
'Initialisation à nouveau de la ListBox
UserForm_Initialize
C'est à toi de décider de la méthode qu'il convient le mieux pour l'élaboration de ton application. Nous sommes là pour apporter une aide seulement.
"DAVID" a écrit dans le message de groupe de discussion :
Donc si je comprend bien. Il faut que j'utilise RowSource puisque je veux modifier l'intérieur d'une ListBox et que cela est lié au tableau de ma feuille et à la fin de la procédure j'actualise à nouveau ListBox afin qu'il se mette à jour. donc
J'initialise ListBox avec
Private Sub UserForm_Initialize() ListBox1.RowSource = ("BD!MaListe") ListBox1.ListIndex = -1 End Sub
Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
' Je mets un code ici pour modifier directement dans ListBox1 (écriture dans ListBox1)
'Initialisation à nouveau de la ListBox UserForm_Initialize
End Sub
Donc je mets quoi comme code ???
Merci de votre aide
David
DAVID
Bonsoir et merci pour le modèle. Je comprend bien que vous êtes pas la pour faire la totalité de nos idées mais après re-lecture, je pense m'avoir mal exprimé.
J'utilisais cette fonction avant mais....
Je vais reformer la question !
En fait je veux écrire DIRECTEMENT dans une ListBox.
Possible ou pas sans passer par un TextBox ?
Genre : 1) Double clic dans la ligne de ListBox à modifier 2) Modification des valeurs dans la ListBox 3) Appui sur la touche entrée pour valider les saisies et remettre à jour la ListBox
Merci de votre aide
Cordialement
David
Bonsoir et merci pour le modèle. Je comprend bien que vous êtes pas la pour
faire la totalité de nos idées mais après re-lecture, je pense m'avoir mal
exprimé.
J'utilisais cette fonction avant mais....
Je vais reformer la question !
En fait je veux écrire DIRECTEMENT dans une ListBox.
Possible ou pas sans passer par un TextBox ?
Genre :
1) Double clic dans la ligne de ListBox à modifier
2) Modification des valeurs dans la ListBox
3) Appui sur la touche entrée pour valider les saisies et remettre à jour la
ListBox
Bonsoir et merci pour le modèle. Je comprend bien que vous êtes pas la pour faire la totalité de nos idées mais après re-lecture, je pense m'avoir mal exprimé.
J'utilisais cette fonction avant mais....
Je vais reformer la question !
En fait je veux écrire DIRECTEMENT dans une ListBox.
Possible ou pas sans passer par un TextBox ?
Genre : 1) Double clic dans la ligne de ListBox à modifier 2) Modification des valeurs dans la ListBox 3) Appui sur la touche entrée pour valider les saisies et remettre à jour la ListBox