une listbox recalcitrante

Le
bobby ewing
bonjour à tous,

j'ai toujours un probleme avec ma listbox (cf message du 05/04/04 17h33
de C.Ruelle). j'ai beau retourner le probleme (et mon code!) dans tous les
sens, rien n'y fait. c'est toujours le meme probleme: une listbox avec une
procedure qui marche tres bien, tant que je ne selectionne pas une ligne qui
sort du cadre. je me dis que c'est peut etre un probleme de mémoire, mais je
ne suis pas assez bon ni pour en etre sur, ni pour regler ce probleme
je m'excuse d'avance pour les spécialistes qui auraient un peu de mal à
comprendre mes explications, mais je suis tout disposé à expliquer les
points obscurs aux personnes de bonne volonté qui voudraient me sortir de ce
mauvais pas.
je m'excuse aussi de déroger aux regles du forum en repostant une question
déjà posée, mais ca me travaille meme la nuit
je suis prêt à offrir toute ma reconnaissance eternelle à la personne qui
m'aidera
un grand merci d'avance

bobby
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #1235946
Bonjour Boby,

Ta Listbox est située où : Feuille de calcul ou Formulaire

Comment as-tu renseigné la propriété "ListFillRange ou "RowSource" de ton contrôle listbox ?

Est-ce que ton contrôle a plusieurs colonnes ou une seule colonnes ?

Après avoir expliqué ce que tu veux obtenir comme comportement de ta listbox, publie ici seulement le code de ta
procédure qui se plante !


Salutations!





"bobby ewing" bonjour à tous,

j'ai toujours un probleme avec ma listbox... (cf message du 05/04/04 17h33
de C.Ruelle). j'ai beau retourner le probleme (et mon code!) dans tous les
sens, rien n'y fait. c'est toujours le meme probleme: une listbox avec une
procedure qui marche tres bien, tant que je ne selectionne pas une ligne qui
sort du cadre. je me dis que c'est peut etre un probleme de mémoire, mais je
ne suis pas assez bon ni pour en etre sur, ni pour regler ce probleme...
je m'excuse d'avance pour les spécialistes qui auraient un peu de mal à
comprendre mes explications, mais je suis tout disposé à expliquer les
points obscurs aux personnes de bonne volonté qui voudraient me sortir de ce
mauvais pas.
je m'excuse aussi de déroger aux regles du forum en repostant une question
déjà posée, mais ca me travaille meme la nuit...
je suis prêt à offrir toute ma reconnaissance eternelle à la personne qui
m'aidera...
un grand merci d'avance...

bobby
bobby ewing
Le #1235703
bonjour michel,

ma list box est située sur une userform. j'ai utilisé rowsource pour
l'initialiser et elle n'a qu'une seule colonne
en fait, je voudrais ceci:
quand je selectionne une ligne de ma listbox, j'active un bouton, qui permet
de supprimer cette ligne. mon code de suppresion recupere le numero renvoyé
par ma listbox et le stocke, ensuite je compte le nombre de ligne qu'il y a
au total que je stocke aussi (sur une feuille appellée "variables",
invisible pour l'utilisateur). si le nombre de ligne est égal au numéro
renvoyé par la listbox, je supprime donc la derniere ligne, sinon je
supprime la ligne correspondante au numéro 'listbox', et je remonte les
autres lignes en leur affectant un nouveau nom (sans oublier de supprimer la
derniere ligne pour eviter le doublement de cette derniere ligne).
a la relecture, j'ai du mal à comprendre mes explications, mais c'est a peu
pres ca. le plus bizarre, c'est que cette procédure, écrite par le novice
que je suis (je me suis mis vraiment a programmer il y a trois semaines) est
peut etre un peu bancale comme ca, mais elle marche... sauf quand je
selectionne une ligne qui sort du cadre de ma listbox, où la, j'ai mon
plantage 1004 avec la méthode clearcontents qui échoue...
sinon, j'ai bien lu les conseils de mousnynao, que je remercie au passage de
s'etre penché sur mon probleme, et auquel je vais essayer de répondre avec
mes connaissances limitées. d'abord, la valeur dans B4 est le nombre de
lignes totales, et la valeur de F4, la valeur renvoyée par la listbox. ces
deux valeurs ne pouvant donc etre que des entiers positifs (inférieur à 255,
puisqu'il vont au max jusque 100-150), je pensais pouvoir ecrire mon code
comme ca, mais je peux me tromper. ensuite, j'avoue ne pas avoir bien
compris ce qu'était un controle direct ni un range permis.
je joins le code qui plante en question , meme si je doute que le probleme
se situe uniquement là, ainsi que la réponse de mousnynao pour qu'on sache
de quoi je parle.
voila voila, j'espere que toutes ces explications eclaireront votre
lanterne, et par la meme occasion, la mienne

merci encore et encore

Bobby

____________________________________________________________
Réponse de mousnynao:

Je vois 2 problèmes potentiels !

1.) Par défault le Range(XX).Value n'est pas de type
Byte. Par conséquent vous faite une affection
sans contrôlé le type.

2.) Outre le contrôle définit par la ligne :

If nbressais = numordre Then

Vous n'effectuez pas de contrôle direct sur ces
variables. Il serait souhaitable de valider que
les valeurs de ces variables sont dans un range
permis.

Ceci dit, à mon avis si vous réglé cette situation
ça devrait rouler :)


________________________________________________________
et le fameux code qui plante:

Public Sub supprimerlessai()


Sheets("variables").Activate
With Sheets("variables")
nbressais = .Range("B4").Value ' nbressais as byte
numordre = .Range("F4").Value 'numordre as byte

If nbressais = numordre Then
.Range("B" & 99 + numordre & ":DV" & 99 + numordre
& "").Select

Selection.ClearContents
Application.CutCopyMode = False
Else
.Range("B" & 99 + numordre & ":DV" & 99 + numordre
& "").Select

'On Error Resume Next
Selection.ClearContents
.Range("B" & 100 + numordre & ":DV" & 99 +
nbressais & "").Select

Selection.Copy
.Range("B" & 99 + numordre & "").Select
ActiveSheet.Paste
.Range("B" & 99 + nbressais & ":DV" & 99 +
nbressais & "").Select

Selection.ClearContents
For i = 1 To nbressais - numordre
Cells(98 + numordre + i, 2) = numordre + i -
1 & " - Colonne n°

" & .Range("DV" & 98 + numordre + i) & " - " & .Range
("DU" & 98 + numordre +

i)
Next i
End If

End With
'Sheets("variables").Visible = 0
End Sub



"michdenis" #
Bonjour Boby,

Ta Listbox est située où : Feuille de calcul ou Formulaire

Comment as-tu renseigné la propriété "ListFillRange ou "RowSource" de ton
contrôle listbox ?


Est-ce que ton contrôle a plusieurs colonnes ou une seule colonnes ?

Après avoir expliqué ce que tu veux obtenir comme comportement de ta
listbox, publie ici seulement le code de ta

procédure qui se plante !


Salutations!





"bobby ewing" news:

bonjour à tous,

j'ai toujours un probleme avec ma listbox... (cf message du 05/04/04 17h33
de C.Ruelle). j'ai beau retourner le probleme (et mon code!) dans tous les
sens, rien n'y fait. c'est toujours le meme probleme: une listbox avec une
procedure qui marche tres bien, tant que je ne selectionne pas une ligne
qui

sort du cadre. je me dis que c'est peut etre un probleme de mémoire, mais
je

ne suis pas assez bon ni pour en etre sur, ni pour regler ce probleme...
je m'excuse d'avance pour les spécialistes qui auraient un peu de mal à
comprendre mes explications, mais je suis tout disposé à expliquer les
points obscurs aux personnes de bonne volonté qui voudraient me sortir de
ce

mauvais pas.
je m'excuse aussi de déroger aux regles du forum en repostant une question
déjà posée, mais ca me travaille meme la nuit...
je suis prêt à offrir toute ma reconnaissance eternelle à la personne qui
m'aidera...
un grand merci d'avance...

bobby





michdenis
Le #1235455
Bonjour Boby,

Si j'ai bien compris ce que tu essaies de faire... voici un exemple du code que tu devrais avoir dans ton formulaire
pour gérer ta listbox

MaListe représente une plage de cellules nommée de ta feuille de calcul contenant les données du ListBox

LaListe est une variable qui va contenir tous les données à afficher dant ton listbox

à chaque fois que tu vas cliquer sur le bouton de commande, les valeurs sélectionnées dans ta listbox se supprimeront et
cela mettre aussi ta plage source des valeurs dans ta feuille de calcul à jour instatanément !

'Déclaration de la variable LaListe dans le haut du module formulaire
Dim LaListe As Variant
'---------------------------------
Private Sub CommandButton1_Click()
Dim A as Long
For a = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(a) = True Then
Range("maliste")(a + 1).Delete (xlUp)
LaListe = Range("Maliste")
Me.ListBox1.List = LaListe
End If
Next
End Sub

'---------------------------------
Private Sub UserForm_Initialize()

LaListe = Range("MaListe")
Me.ListBox1.List = LaListe

End Sub
'---------------------------------


Salutations!




"bobby ewing" bonjour michel,

ma list box est située sur une userform. j'ai utilisé rowsource pour
l'initialiser et elle n'a qu'une seule colonne
en fait, je voudrais ceci:
quand je selectionne une ligne de ma listbox, j'active un bouton, qui permet
de supprimer cette ligne. mon code de suppresion recupere le numero renvoyé
par ma listbox et le stocke, ensuite je compte le nombre de ligne qu'il y a
au total que je stocke aussi (sur une feuille appellée "variables",
invisible pour l'utilisateur). si le nombre de ligne est égal au numéro
renvoyé par la listbox, je supprime donc la derniere ligne, sinon je
supprime la ligne correspondante au numéro 'listbox', et je remonte les
autres lignes en leur affectant un nouveau nom (sans oublier de supprimer la
derniere ligne pour eviter le doublement de cette derniere ligne).
a la relecture, j'ai du mal à comprendre mes explications, mais c'est a peu
pres ca. le plus bizarre, c'est que cette procédure, écrite par le novice
que je suis (je me suis mis vraiment a programmer il y a trois semaines) est
peut etre un peu bancale comme ca, mais elle marche... sauf quand je
selectionne une ligne qui sort du cadre de ma listbox, où la, j'ai mon
plantage 1004 avec la méthode clearcontents qui échoue...
sinon, j'ai bien lu les conseils de mousnynao, que je remercie au passage de
s'etre penché sur mon probleme, et auquel je vais essayer de répondre avec
mes connaissances limitées. d'abord, la valeur dans B4 est le nombre de
lignes totales, et la valeur de F4, la valeur renvoyée par la listbox. ces
deux valeurs ne pouvant donc etre que des entiers positifs (inférieur à 255,
puisqu'il vont au max jusque 100-150), je pensais pouvoir ecrire mon code
comme ca, mais je peux me tromper. ensuite, j'avoue ne pas avoir bien
compris ce qu'était un controle direct ni un range permis.
je joins le code qui plante en question , meme si je doute que le probleme
se situe uniquement là, ainsi que la réponse de mousnynao pour qu'on sache
de quoi je parle.
voila voila, j'espere que toutes ces explications eclaireront votre
lanterne, et par la meme occasion, la mienne

merci encore et encore

Bobby

____________________________________________________________
Réponse de mousnynao:

Je vois 2 problèmes potentiels !

1.) Par défault le Range(XX).Value n'est pas de type
Byte. Par conséquent vous faite une affection
sans contrôlé le type.

2.) Outre le contrôle définit par la ligne :

If nbressais = numordre Then

Vous n'effectuez pas de contrôle direct sur ces
variables. Il serait souhaitable de valider que
les valeurs de ces variables sont dans un range
permis.

Ceci dit, à mon avis si vous réglé cette situation
ça devrait rouler :)


________________________________________________________
et le fameux code qui plante:

Public Sub supprimerlessai()


Sheets("variables").Activate
With Sheets("variables")
nbressais = .Range("B4").Value ' nbressais as byte
numordre = .Range("F4").Value 'numordre as byte

If nbressais = numordre Then
.Range("B" & 99 + numordre & ":DV" & 99 + numordre
& "").Select

Selection.ClearContents
Application.CutCopyMode = False
Else
.Range("B" & 99 + numordre & ":DV" & 99 + numordre
& "").Select

'On Error Resume Next
Selection.ClearContents
.Range("B" & 100 + numordre & ":DV" & 99 +
nbressais & "").Select

Selection.Copy
.Range("B" & 99 + numordre & "").Select
ActiveSheet.Paste
.Range("B" & 99 + nbressais & ":DV" & 99 +
nbressais & "").Select

Selection.ClearContents
For i = 1 To nbressais - numordre
Cells(98 + numordre + i, 2) = numordre + i -
1 & " - Colonne n°

" & .Range("DV" & 98 + numordre + i) & " - " & .Range
("DU" & 98 + numordre +

i)
Next i
End If

End With
'Sheets("variables").Visible = 0
End Sub



"michdenis" #
Bonjour Boby,

Ta Listbox est située où : Feuille de calcul ou Formulaire

Comment as-tu renseigné la propriété "ListFillRange ou "RowSource" de ton
contrôle listbox ?


Est-ce que ton contrôle a plusieurs colonnes ou une seule colonnes ?

Après avoir expliqué ce que tu veux obtenir comme comportement de ta
listbox, publie ici seulement le code de ta

procédure qui se plante !


Salutations!





"bobby ewing" news:

bonjour à tous,

j'ai toujours un probleme avec ma listbox... (cf message du 05/04/04 17h33
de C.Ruelle). j'ai beau retourner le probleme (et mon code!) dans tous les
sens, rien n'y fait. c'est toujours le meme probleme: une listbox avec une
procedure qui marche tres bien, tant que je ne selectionne pas une ligne
qui

sort du cadre. je me dis que c'est peut etre un probleme de mémoire, mais
je

ne suis pas assez bon ni pour en etre sur, ni pour regler ce probleme...
je m'excuse d'avance pour les spécialistes qui auraient un peu de mal à
comprendre mes explications, mais je suis tout disposé à expliquer les
points obscurs aux personnes de bonne volonté qui voudraient me sortir de
ce

mauvais pas.
je m'excuse aussi de déroger aux regles du forum en repostant une question
déjà posée, mais ca me travaille meme la nuit...
je suis prêt à offrir toute ma reconnaissance eternelle à la personne qui
m'aidera...
un grand merci d'avance...

bobby





michdenis
Le #1285760
IMPORTANT : Tu ne dois pas définir la propriété ROWSOURCE de ta listbox, si tu utilises le code de mon exemple.


Salutations!



"michdenis" Bonjour Boby,

Si j'ai bien compris ce que tu essaies de faire... voici un exemple du code que tu devrais avoir dans ton formulaire
pour gérer ta listbox

MaListe représente une plage de cellules nommée de ta feuille de calcul contenant les données du ListBox

LaListe est une variable qui va contenir tous les données à afficher dant ton listbox

à chaque fois que tu vas cliquer sur le bouton de commande, les valeurs sélectionnées dans ta listbox se supprimeront et
cela mettre aussi ta plage source des valeurs dans ta feuille de calcul à jour instatanément !

'Déclaration de la variable LaListe dans le haut du module formulaire
Dim LaListe As Variant
'---------------------------------
Private Sub CommandButton1_Click()
Dim A as Long
For a = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(a) = True Then
Range("maliste")(a + 1).Delete (xlUp)
LaListe = Range("Maliste")
Me.ListBox1.List = LaListe
End If
Next
End Sub

'---------------------------------
Private Sub UserForm_Initialize()

LaListe = Range("MaListe")
Me.ListBox1.List = LaListe

End Sub
'---------------------------------


Salutations!




"bobby ewing" bonjour michel,

ma list box est située sur une userform. j'ai utilisé rowsource pour
l'initialiser et elle n'a qu'une seule colonne
en fait, je voudrais ceci:
quand je selectionne une ligne de ma listbox, j'active un bouton, qui permet
de supprimer cette ligne. mon code de suppresion recupere le numero renvoyé
par ma listbox et le stocke, ensuite je compte le nombre de ligne qu'il y a
au total que je stocke aussi (sur une feuille appellée "variables",
invisible pour l'utilisateur). si le nombre de ligne est égal au numéro
renvoyé par la listbox, je supprime donc la derniere ligne, sinon je
supprime la ligne correspondante au numéro 'listbox', et je remonte les
autres lignes en leur affectant un nouveau nom (sans oublier de supprimer la
derniere ligne pour eviter le doublement de cette derniere ligne).
a la relecture, j'ai du mal à comprendre mes explications, mais c'est a peu
pres ca. le plus bizarre, c'est que cette procédure, écrite par le novice
que je suis (je me suis mis vraiment a programmer il y a trois semaines) est
peut etre un peu bancale comme ca, mais elle marche... sauf quand je
selectionne une ligne qui sort du cadre de ma listbox, où la, j'ai mon
plantage 1004 avec la méthode clearcontents qui échoue...
sinon, j'ai bien lu les conseils de mousnynao, que je remercie au passage de
s'etre penché sur mon probleme, et auquel je vais essayer de répondre avec
mes connaissances limitées. d'abord, la valeur dans B4 est le nombre de
lignes totales, et la valeur de F4, la valeur renvoyée par la listbox. ces
deux valeurs ne pouvant donc etre que des entiers positifs (inférieur à 255,
puisqu'il vont au max jusque 100-150), je pensais pouvoir ecrire mon code
comme ca, mais je peux me tromper. ensuite, j'avoue ne pas avoir bien
compris ce qu'était un controle direct ni un range permis.
je joins le code qui plante en question , meme si je doute que le probleme
se situe uniquement là, ainsi que la réponse de mousnynao pour qu'on sache
de quoi je parle.
voila voila, j'espere que toutes ces explications eclaireront votre
lanterne, et par la meme occasion, la mienne

merci encore et encore

Bobby

____________________________________________________________
Réponse de mousnynao:

Je vois 2 problèmes potentiels !

1.) Par défault le Range(XX).Value n'est pas de type
Byte. Par conséquent vous faite une affection
sans contrôlé le type.

2.) Outre le contrôle définit par la ligne :

If nbressais = numordre Then

Vous n'effectuez pas de contrôle direct sur ces
variables. Il serait souhaitable de valider que
les valeurs de ces variables sont dans un range
permis.

Ceci dit, à mon avis si vous réglé cette situation
ça devrait rouler :)


________________________________________________________
et le fameux code qui plante:

Public Sub supprimerlessai()


Sheets("variables").Activate
With Sheets("variables")
nbressais = .Range("B4").Value ' nbressais as byte
numordre = .Range("F4").Value 'numordre as byte

If nbressais = numordre Then
.Range("B" & 99 + numordre & ":DV" & 99 + numordre
& "").Select

Selection.ClearContents
Application.CutCopyMode = False
Else
.Range("B" & 99 + numordre & ":DV" & 99 + numordre
& "").Select

'On Error Resume Next
Selection.ClearContents
.Range("B" & 100 + numordre & ":DV" & 99 +
nbressais & "").Select

Selection.Copy
.Range("B" & 99 + numordre & "").Select
ActiveSheet.Paste
.Range("B" & 99 + nbressais & ":DV" & 99 +
nbressais & "").Select

Selection.ClearContents
For i = 1 To nbressais - numordre
Cells(98 + numordre + i, 2) = numordre + i -
1 & " - Colonne n°

" & .Range("DV" & 98 + numordre + i) & " - " & .Range
("DU" & 98 + numordre +

i)
Next i
End If

End With
'Sheets("variables").Visible = 0
End Sub



"michdenis" #
Bonjour Boby,

Ta Listbox est située où : Feuille de calcul ou Formulaire

Comment as-tu renseigné la propriété "ListFillRange ou "RowSource" de ton
contrôle listbox ?


Est-ce que ton contrôle a plusieurs colonnes ou une seule colonnes ?

Après avoir expliqué ce que tu veux obtenir comme comportement de ta
listbox, publie ici seulement le code de ta

procédure qui se plante !


Salutations!





"bobby ewing" news:

bonjour à tous,

j'ai toujours un probleme avec ma listbox... (cf message du 05/04/04 17h33
de C.Ruelle). j'ai beau retourner le probleme (et mon code!) dans tous les
sens, rien n'y fait. c'est toujours le meme probleme: une listbox avec une
procedure qui marche tres bien, tant que je ne selectionne pas une ligne
qui

sort du cadre. je me dis que c'est peut etre un probleme de mémoire, mais
je

ne suis pas assez bon ni pour en etre sur, ni pour regler ce probleme...
je m'excuse d'avance pour les spécialistes qui auraient un peu de mal à
comprendre mes explications, mais je suis tout disposé à expliquer les
points obscurs aux personnes de bonne volonté qui voudraient me sortir de
ce

mauvais pas.
je m'excuse aussi de déroger aux regles du forum en repostant une question
déjà posée, mais ca me travaille meme la nuit...
je suis prêt à offrir toute ma reconnaissance eternelle à la personne qui
m'aidera...
un grand merci d'avance...

bobby





bobby ewing
Le #1282608
salut michel,

je te remercie bcp pour tes precieux conseils. j'ai encore un petit souci
malgré tout...
j'arrive a utiliser la procédure que tu m'as postée, elle est meme vachement
bien... mais, parce que il faut toujours un mais, elle ne fonctionne que sur
une seule colonne. logique me diras tu puisque je t'ai dit que je n'avais
qu'une colonne a gerer. ce n'est pas totalement vrai, malheureusement...
ma list box n'a qu'une seule colonne, c'est vrai, et elle prend sa source
(si je peux dire comme ca) dans une seule colonne. mais a coté de cette
colonne sont stockées une bonne centaine de valeurs.
je m'explique...
il est question de tester des ouvrages de fondation (batiments et travaux
publics). pour un ouvrage, on obtient une centaine de valeurs à exploiter
ensuite sous la forme d'une courbe. donc dans la colonne B, je stocke le
numéro de l'ouvrage testé, et de la colonne C à la colonne DV les valeurs
acquises au cours de l'essai. ma list box ne reprend donc que le numéro de
l'ouvrage testé. mais je ne peux pas remonter seulement le numéro des
ouvrages si les valeurs correspondant si les valeurs de l'essai ne les
suivent pas... j'ai essayé de bidouiller ton code pour qu'il me fasse ca,
mais j'y arrive pas, et donc je me retourne encore une fois vers toi, ou une
bonne ame qui arriverait à me suivre dans mes explications...
voili voilou, je vous souhaite à tous une bonne soirée, et vous remercie
encore,

bobby
michdenis
Le #1236704
Bonjour Boby,

Essaie ceci :

Dans cette procédure, j'ai seulement modifié cette ligne de commande :

Range("maliste")(a + 1).Delete (xlUp)

Par :

Ceci effacera tout la ligne dans ta feuille de données qui correspond à ton numéro de ton combobox
de la colonne B à la colonne DV

Range("maliste")(a + 1).Resize(, 125)Delete (xlUp)


'---------------------------------
Private Sub CommandButton1_Click()
Dim A as Long
For a = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(a) = True Then
Range("maliste")(a + 1).Resize(, 125)Delete (xlUp)
LaListe = Range("Maliste")
Me.ListBox1.List = LaListe
End If
Next
End Sub
'---------------------------------


Salutations!





"bobby ewing" salut michel,

je te remercie bcp pour tes precieux conseils. j'ai encore un petit souci
malgré tout...
j'arrive a utiliser la procédure que tu m'as postée, elle est meme vachement
bien... mais, parce que il faut toujours un mais, elle ne fonctionne que sur
une seule colonne. logique me diras tu puisque je t'ai dit que je n'avais
qu'une colonne a gerer. ce n'est pas totalement vrai, malheureusement...
ma list box n'a qu'une seule colonne, c'est vrai, et elle prend sa source
(si je peux dire comme ca) dans une seule colonne. mais a coté de cette
colonne sont stockées une bonne centaine de valeurs.
je m'explique...
il est question de tester des ouvrages de fondation (batiments et travaux
publics). pour un ouvrage, on obtient une centaine de valeurs à exploiter
ensuite sous la forme d'une courbe. donc dans la colonne B, je stocke le
numéro de l'ouvrage testé, et de la colonne C à la colonne DV les valeurs
acquises au cours de l'essai. ma list box ne reprend donc que le numéro de
l'ouvrage testé. mais je ne peux pas remonter seulement le numéro des
ouvrages si les valeurs correspondant si les valeurs de l'essai ne les
suivent pas... j'ai essayé de bidouiller ton code pour qu'il me fasse ca,
mais j'y arrive pas, et donc je me retourne encore une fois vers toi, ou une
bonne ame qui arriverait à me suivre dans mes explications...
voili voilou, je vous souhaite à tous une bonne soirée, et vous remercie
encore,

bobby
bobby ewing
Le #1236963
bonjour michel,

la nouvelle ligne me donne une erreur de compilation. le delete est surligné
et il attend une fin d'instruction...
je suis perplexe une fois de plus, il doit manquer un chti chouille de rien
du tout... mais on approche!!!
je te remercie encore et te souhaite une tres bonne journée

bobby



"michdenis" ##
Bonjour Boby,

Essaie ceci :

Dans cette procédure, j'ai seulement modifié cette ligne de commande :

Range("maliste")(a + 1).Delete (xlUp)

Par :

Ceci effacera tout la ligne dans ta feuille de données qui correspond à
ton numéro de ton combobox

de la colonne B à la colonne DV

Range("maliste")(a + 1).Resize(, 125)Delete (xlUp)


'---------------------------------
Private Sub CommandButton1_Click()
Dim A as Long
For a = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(a) = True Then
Range("maliste")(a + 1).Resize(, 125)Delete (xlUp)
LaListe = Range("Maliste")
Me.ListBox1.List = LaListe
End If
Next
End Sub
'---------------------------------


Salutations!





"bobby ewing" news:

salut michel,

je te remercie bcp pour tes precieux conseils. j'ai encore un petit souci
malgré tout...
j'arrive a utiliser la procédure que tu m'as postée, elle est meme
vachement

bien... mais, parce que il faut toujours un mais, elle ne fonctionne que
sur

une seule colonne. logique me diras tu puisque je t'ai dit que je n'avais
qu'une colonne a gerer. ce n'est pas totalement vrai, malheureusement...
ma list box n'a qu'une seule colonne, c'est vrai, et elle prend sa source
(si je peux dire comme ca) dans une seule colonne. mais a coté de cette
colonne sont stockées une bonne centaine de valeurs.
je m'explique...
il est question de tester des ouvrages de fondation (batiments et travaux
publics). pour un ouvrage, on obtient une centaine de valeurs à exploiter
ensuite sous la forme d'une courbe. donc dans la colonne B, je stocke le
numéro de l'ouvrage testé, et de la colonne C à la colonne DV les valeurs
acquises au cours de l'essai. ma list box ne reprend donc que le numéro de
l'ouvrage testé. mais je ne peux pas remonter seulement le numéro des
ouvrages si les valeurs correspondant si les valeurs de l'essai ne les
suivent pas... j'ai essayé de bidouiller ton code pour qu'il me fasse ca,
mais j'y arrive pas, et donc je me retourne encore une fois vers toi, ou
une

bonne ame qui arriverait à me suivre dans mes explications...
voili voilou, je vous souhaite à tous une bonne soirée, et vous remercie
encore,

bobby







michdenis
Le #1282507
Bonjour Bobby,

Range("maliste")(a + 1).Resize(1, 125).Delete (xlUp)


Salutations!


"bobby ewing" bonjour michel,

la nouvelle ligne me donne une erreur de compilation. le delete est surligné
et il attend une fin d'instruction...
je suis perplexe une fois de plus, il doit manquer un chti chouille de rien
du tout... mais on approche!!!
je te remercie encore et te souhaite une tres bonne journée

bobby



"michdenis" ##
Bonjour Boby,

Essaie ceci :

Dans cette procédure, j'ai seulement modifié cette ligne de commande :

Range("maliste")(a + 1).Delete (xlUp)

Par :

Ceci effacera tout la ligne dans ta feuille de données qui correspond à
ton numéro de ton combobox

de la colonne B à la colonne DV

Range("maliste")(a + 1).Resize(, 125)Delete (xlUp)


'---------------------------------
Private Sub CommandButton1_Click()
Dim A as Long
For a = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(a) = True Then
Range("maliste")(a + 1).Resize(, 125)Delete (xlUp)
LaListe = Range("Maliste")
Me.ListBox1.List = LaListe
End If
Next
End Sub
'---------------------------------


Salutations!





"bobby ewing" news:

salut michel,

je te remercie bcp pour tes precieux conseils. j'ai encore un petit souci
malgré tout...
j'arrive a utiliser la procédure que tu m'as postée, elle est meme
vachement

bien... mais, parce que il faut toujours un mais, elle ne fonctionne que
sur

une seule colonne. logique me diras tu puisque je t'ai dit que je n'avais
qu'une colonne a gerer. ce n'est pas totalement vrai, malheureusement...
ma list box n'a qu'une seule colonne, c'est vrai, et elle prend sa source
(si je peux dire comme ca) dans une seule colonne. mais a coté de cette
colonne sont stockées une bonne centaine de valeurs.
je m'explique...
il est question de tester des ouvrages de fondation (batiments et travaux
publics). pour un ouvrage, on obtient une centaine de valeurs à exploiter
ensuite sous la forme d'une courbe. donc dans la colonne B, je stocke le
numéro de l'ouvrage testé, et de la colonne C à la colonne DV les valeurs
acquises au cours de l'essai. ma list box ne reprend donc que le numéro de
l'ouvrage testé. mais je ne peux pas remonter seulement le numéro des
ouvrages si les valeurs correspondant si les valeurs de l'essai ne les
suivent pas... j'ai essayé de bidouiller ton code pour qu'il me fasse ca,
mais j'y arrive pas, et donc je me retourne encore une fois vers toi, ou
une

bonne ame qui arriverait à me suivre dans mes explications...
voili voilou, je vous souhaite à tous une bonne soirée, et vous remercie
encore,

bobby







bobby ewing
Le #1282490
mais c'est bien sur!
Michel, te voila l'heureux bénéficiaire de ma reconnaissance etenelle. je
vais enfin arriver a dormir...
merci mille fois de partager ainsi ta connaissance au novice que je suis. ta
procédure marche au poil, c'est merveilleux!
merci encore, et je te souhaite un très bon week end de Paques,

Bobby
Publicité
Poster une réponse
Anonyme