range textebox

mohama

XLDnaute Nouveau
Bonjour a tous, bonjour le Forum

j'ai trouvé un exemple excel qui m'intéresse ,mais je n'est pas pu faire une range comme je le veux j'ai tous fait et j'ai n'est pas pus

je veux faire une range sur ; exemple sur la cellule (D13), ou autre cellule

je veux comprendre l'astuce de range sur les listebox


Private Sub ComdQuitter_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
Dim L As Integer
Dim Plage As String
L = Sheets("DataBase").Range("A65536").End(xlUp).Row + 1
Plage = Sheets("DataBase").Range("A2:D" & L).Address
ListBox1.RowSource = "DataBase!" & Plage
ListBox1.ColumnCount = 3
ListBox1.ColumnHeads = True
ListBox1.ColumnWidths = 80
End Sub
Private Sub ComdValider_Click()
Dim L As Integer, x As Byte
L = Sheets("Inserer").Range("A65536").End(xlUp).Row + 1
With Me.ListBox1
For x = 0 To .ListCount - 1
If .Selected(x) = True Then
Sheets("Inserer").Range("A" & L) = .Column(0, x) 'D13
Sheets("Inserer").Range("B" & L) = .Column(1, x) 'E13
Sheets("Inserer").Range("C" & L) = .Column(2, x) 'F13
L = L + 1
End If
Next x
End With
Unload Me
End Sub
 
Dernière édition:

fhoest

XLDnaute Accro
Re : range textebox

Bonjour,
que désire tu exactement 'cest de remplir une listbox a partir d'une ou plusieurs cellules?

Si oui:
Code:
listbox1.additem range("d13").value
'listbox1=nom du control
' add=ajout
'item =ce qui sera ajouté ( item)
' range("d13")= cellules d13
'.value= valeur de la cellule range("???")
par exemple.
sinon tu as aussi la propriété du controle listbox (rowsource)
voir F1 aide excel

A+
 

mohama

XLDnaute Nouveau
Re : range textebox

mr fhoest
Reste le problème du .Range("A65536").End(xlUp).Row + 1
Votre Solution écris sur la même ligne,




Celui qui croit tout connaitre, ne connait sans doute pas grand chose.
Chacun apporte son savoir, mais on a tous tout à apprendre .... fhoest
 

Efgé

XLDnaute Barbatruc
Re : range textebox

Bonjour mohama, fhoest,
Si je puis me permettre, deux propositions :
Code:
Private Sub UserForm_Initialize()
ListBox1.RowSource = "DataBase!A2:A" & Sheets("DataBase").Range("A" & Application.Rows.Count).End(xlUp).Row
ListBox1.ColumnCount = 3
ListBox1.ColumnHeads = True
ListBox1.ColumnWidths = 80
End Sub
et
Code:
Private Sub ComdValider_Click()
Dim L As Integer, x As Byte
With Me.ListBox1
For x = 0 To .ListCount - 1
If .Selected(x) = True Then
L = Sheets("Inserer").Range("A65536").End(xlUp).Row + 1
Sheets("Inserer").Range("A" & L) = .Column(0, x) 'D13
Sheets("Inserer").Range("B" & L) = .Column(1, x) 'E13
Sheets("Inserer").Range("C" & L) = .Column(2, x) 'F13
End If
Next x
End With
Unload Me
End Sub
Cordialement
 

fhoest

XLDnaute Accro
Re : range textebox

En fait cette ligne
Code:
L = Sheets("DataBase").Range("A65536").End(xlUp).Row + 1
dit: la valeur L est égale a la ligne de la denière cellule non vide de la colonne A + 1 c'est a dire la ligne de la première cellule vide de la colonne A.
donc si tu veux ajouter une donnée a la suite et non pas a la ligne 13 tu dois utiliser la variable L dans la formule
comme ceci:
Code:
Sheets("Inserer").Range("D"&L).value = .Column(0, x)
Sheets("Inserer").Range("E"&L).value = .Column(1, x) 
Sheets("Inserer").Range("F"&L).value = .Column(2, x)
.
J'espère que tu as compris le fonctionnement maintenant
A+
 

Efgé

XLDnaute Barbatruc
Re : range textebox

Bonjour mohama, fhoest,
Si je puis me permettre, deux propositions :
Code:
Private Sub UserForm_Initialize()
ListBox1.RowSource = "DataBase!A2:A" & Sheets("DataBase").Range("A" & Application.Rows.Count).End(xlUp).Row
ListBox1.ColumnCount = 3
ListBox1.ColumnHeads = True
ListBox1.ColumnWidths = 80
End Sub
et
Code:
Private Sub ComdValider_Click()
Dim L As Integer, x As Byte
With Me.ListBox1
For x = 0 To .ListCount - 1
If .Selected(x) = True Then
'Chercher la dernière ligne maintenant
L = Sheets("Inserer").Range("A65536").End(xlUp).Row + 1
'le code de fhoest
Sheets("Inserer").Range("D13").value = .Column(0, x)
Sheets("Inserer").Range("E13").value = .Column(1, x) 
Sheets("Inserer").Range("F13").value = .Column(2, x)End If
Next x
End With
Unload Me
End Sub
Cordialement
 

mohama

XLDnaute Nouveau
Re : range textebox

Merci fhoest
donc je supprime
'Dim L As Integer


Private Sub ComdValider_Click()
'Dim L As Integer, x As Byte
Sheets("Inserer").Range("A65536").End(xlUp).Row 1
With Me.ListBox1
For x = 0 To .ListCount - 1
If .Selected(x) = True Then
Sheets("Inserer").Range("D13").Value = .Column(0, x)
Sheets("Inserer").Range("E13").Value = .Column(1, x)
Sheets("Inserer").Range("F13").Value = .Column(2, x)
L = L + 1
End If
Next x
End With
Unload Me
End Sub




ça marche pas Mr fhoest

l'Erreur est sur la ligne Sheets("Inserer").Range("A65536").End(xlUp).Row 1


écris toujours sur la même ligne
 
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : range textebox

Re
Suite à MP ( le même que le post précédent):
Voici uin exemple d'où j'en suis.
Les données sont bien copiées sur la première ligne vide de la feuille Inserer:
Code:
Private Sub UserForm_Initialize()
ListBox1.RowSource = "DataBase!A2:C" & Sheets("DataBase").Range("A" & Application.Rows.Count).End(xlUp).Row
ListBox1.ColumnCount = 3
End Sub
Code:
Private Sub ComdValider_Click()
Dim L As Long, x As Byte
With Me.ListBox1
    For x = 0 To .ListCount - 1
        If .Selected(x) = True Then
            L = Sheets("Inserer").Range("D65536").End(xlUp).Row + 1
            Sheets("Inserer").Range("D" & L) = .Column(0, x) 
            Sheets("Inserer").Range("E" & L) = .Column(1, x) 
            Sheets("Inserer").Range("F" & L) = .Column(2, x) 
        End If
    Next x
End With
Unload Me
End Sub
Cordialement
 

Pièces jointes

  • mohama(1).zip
    14.9 KB · Affichages: 30

fhoest

XLDnaute Accro
Re : range textebox

NON, cela fonctionne,il faut juste modifier pas effacer
regarde

tu as supprimer le + du code
ensuite voila ce qu'il faut mettre
Code:
Private Sub ComdValider_Click()
'Dim L As Integer, x As Byte
Sheets("Inserer").Range("A65536").End(xlUp).Row [COLOR="Red"]+[/COLOR]1
With Me.ListBox1
For x = 0 To .ListCount - 1
If .Selected(x) = True Then
Sheets("Inserer").Range("D"[COLOR="Red"]&L[/COLOR]).Value = .Column(0, x)
Sheets("Inserer").Range("E"[COLOR="Red"]&L[/COLOR]).Value = .Column(1, x)
Sheets("Inserer").Range("F"[COLOR="Red"]&L[/COLOR]).Value = .Column(2, x)
'ci dessous tu inscrit L=L+1 cela  veut dire que pour la prochaine valeur de x
' la ligne de repaire L sera incrémenté de 1 
'donc tu ne va pas écrire sur la meme ligne
L = L + 1
End If
Next x
End With
Unload Me
End Sub

A+
Ps bonjour a toi Efgé

Merci fhoest
donc je supprime
'Dim L As Integer

ça marche pas Mr fhoest

l'Erreur est sur la ligne Sheets("Inserer").Range("A65536").End(xlUp).Row 1


écris toujours sur la même ligne
 

Efgé

XLDnaute Barbatruc
Re : range textebox

Re,
fhoest :J'ai l'impression que ne va pas s'en sortir aussis façilement que prévu...:rolleyes:

mohama: Avez vous ouvert mon fichier exemple ? Si oui cette version vous convient elle? Si non postez votre fichier (moins de 48,8 Ko) pour que l'on puisse mieux comprendre ou se situ votre problème.

A vous relire... ...sur le fil.
Cordialement
 

fhoest

XLDnaute Accro
Re : range textebox

Patience Efgé,
parfois il suffit d'un déclic est c'est parti,juste tentez d'expliquer clairement avec le plus de commentaires me semble judicieux,
l'idée de poster le fichier est vrai que cela serait bien utile mais je pense que l'on est en bonne voie

Au plaisir.
 
Dernière édition:

mohama

XLDnaute Nouveau
Re : range textebox

merçi mr Efgé Mr fhoest
est patienter avec moi je vais envoiler mon fichier
 

Pièces jointes

  • Mon Exemple11.xlsm
    25.3 KB · Affichages: 35
  • Mon Exemple11.xlsm
    25.3 KB · Affichages: 38
  • Mon Exemple11.xlsm
    25.3 KB · Affichages: 42
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 756
Messages
2 091 734
Membres
105 060
dernier inscrit
DEDJAN Gaston