missdidy86
XLDnaute Nouveau
Bonjour à tous,
J'ai un tableau excel que je dois faire pour le travail et j'aurai quelques soucis avec vba que je ne connais pas du tout... 🙁
Sur mon tableau, j'ai une feuille avec sur une colonne une liste de maçons et sur une autre j'ai par exemple "Soumissionnaire maçonnerie". Dans la colonne "Soumissionnaire maçonnerie", j'aimerai qu'en double-cliquant sur la cellule, j'ai ma liste de maçons et que je puisse en sélectionner plusieurs. Chose que j'ai réussi à faire après des heures passées. Le problème suivant, pour chaque sélection, je voulais qu'il y ait un retour à la ligne, j'y ai réussi à moitié... j'ai utilisé la commande & vbNewLine & vbNewLine il me met une ligne vide entre deux. Car si je mets que & vbNewLine il me manque chaque fois une lettre à la fin.. je ne sais pas pourquoi... je vous montrerai mon code ci-dessous.
Ce que j'aimerai faire maintenant, c'est passer ma liste de maçons qui se trouve sur la même feuille sur une autre feuille... car là je l'ai mise sur une autre colonne comme noté ci-dessus car je ne sais pas comment faire autrement avec les codes vba...
J'aimerai aussi répéter mon code vba sur toute une colonne, ma colonne en question et la "I"
Voici le code de mon userform :
Option Explicit
Private Sub CommandButton1_Click()
Dim i As Byte
Dim ValeurARetourner As String
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ValeurARetourner = ValeurARetourner & ListBox1.List(i) & vbNewLine & vbNewLine
End If
Next i
With Sheets("Feuil1")
.Range("I2") = Left(ValeurARetourner, Len(ValeurARetourner) - 3)
.Range("I3").Activate
End With
UserForm1.Hide
Unload UserForm1
End Sub
Private Sub ListBox1_Click()
End Sub
Private Sub UserForm_Initialize()
Dim i As Integer, Derlig As Integer
ListBox1.Clear
Derlig = Sheets("Feuil1").Cells(65536, 19).End(xlUp).Row
For i = 1 To Derlig
ListBox1.AddItem Cells(i, 19).Value
Next i
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ListBox1.Selected(i) = False
End If
Next i
End Sub
et le code de ma feuil1 :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$I$2" Then
Target.Value = ""
Load UserForm1
UserForm1.Show
End If
End Sub
Si quelqu'un peut m'aider ?
J'espère avoir été claire. Comme c'est un fichier pour le travail, je ne peux malheureusement pas vous mettre les données du tableau pour exemple.
En fichier joint, voici mon tableau vide.
Un grand merci d'avance.
J'ai un tableau excel que je dois faire pour le travail et j'aurai quelques soucis avec vba que je ne connais pas du tout... 🙁
Sur mon tableau, j'ai une feuille avec sur une colonne une liste de maçons et sur une autre j'ai par exemple "Soumissionnaire maçonnerie". Dans la colonne "Soumissionnaire maçonnerie", j'aimerai qu'en double-cliquant sur la cellule, j'ai ma liste de maçons et que je puisse en sélectionner plusieurs. Chose que j'ai réussi à faire après des heures passées. Le problème suivant, pour chaque sélection, je voulais qu'il y ait un retour à la ligne, j'y ai réussi à moitié... j'ai utilisé la commande & vbNewLine & vbNewLine il me met une ligne vide entre deux. Car si je mets que & vbNewLine il me manque chaque fois une lettre à la fin.. je ne sais pas pourquoi... je vous montrerai mon code ci-dessous.
Ce que j'aimerai faire maintenant, c'est passer ma liste de maçons qui se trouve sur la même feuille sur une autre feuille... car là je l'ai mise sur une autre colonne comme noté ci-dessus car je ne sais pas comment faire autrement avec les codes vba...
J'aimerai aussi répéter mon code vba sur toute une colonne, ma colonne en question et la "I"
Voici le code de mon userform :
Option Explicit
Private Sub CommandButton1_Click()
Dim i As Byte
Dim ValeurARetourner As String
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ValeurARetourner = ValeurARetourner & ListBox1.List(i) & vbNewLine & vbNewLine
End If
Next i
With Sheets("Feuil1")
.Range("I2") = Left(ValeurARetourner, Len(ValeurARetourner) - 3)
.Range("I3").Activate
End With
UserForm1.Hide
Unload UserForm1
End Sub
Private Sub ListBox1_Click()
End Sub
Private Sub UserForm_Initialize()
Dim i As Integer, Derlig As Integer
ListBox1.Clear
Derlig = Sheets("Feuil1").Cells(65536, 19).End(xlUp).Row
For i = 1 To Derlig
ListBox1.AddItem Cells(i, 19).Value
Next i
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ListBox1.Selected(i) = False
End If
Next i
End Sub
et le code de ma feuil1 :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$I$2" Then
Target.Value = ""
Load UserForm1
UserForm1.Show
End If
End Sub
Si quelqu'un peut m'aider ?
J'espère avoir été claire. Comme c'est un fichier pour le travail, je ne peux malheureusement pas vous mettre les données du tableau pour exemple.
En fichier joint, voici mon tableau vide.
Un grand merci d'avance.
Pièces jointes
Dernière édition: