• Initiateur de la discussion Initiateur de la discussion gh4
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gh4

XLDnaute Occasionnel
Bonjour
voici la macro

Private Sub ListBox1_Click()
Dim Derlig As Integer, i As Integer, X As String, Derlig1 As Integer

X = ListBox1
' Recherche dans la liste des articles
With Sheets("article")
Derlig = .Range("B65536").End(xlUp).Row
For i = 4 To Derlig
If .Cells(i, 2) = X Then
'Report des données sur l'article
With Sheets("base")
Derlig1 = .Range("B65536").End(xlUp).Row
.Range("B" & Derlig1 + 1) = Sheets("article").Range("B" & i)
.Range("c" & Derlig1 + 1) = Sheets("article").Range("c" & i)
.Range("e" & Derlig1 + 1) = Sheets("article").Range("d" & i)
End With
Exit Sub ' Sortie de la boucle une fois le report réalisé
End If
Next i
End With
End Sub

comment ecrire les valeurs dans le tableau en limitant de la ligne 16 a la ligne 36

d'avance merci
 
Re : probleme macro

Bonjour,
Comme ta première boucle concerne la ligne 4 à la dernière, j'en déduis que ta question concerne les lignes du tableau de la feuille "base".
Pour la ligne <= 36, je comprends, le >= 16, beaucoup moins !
Code:
Private Sub ListBox1_Click()
Dim Derlig As Integer, i As Integer, X As String, Derlig1 As Integer
X = ListBox1
' Recherche dans la liste des articles
With Sheets("article")
Derlig = .Range("B65536").End(xlUp).Row
For i = 4 To Derlig
If .Cells(i, 2) = X Then
'Report des données sur l'article
With Sheets("base")
Derlig1 = .Range("B65536").End(xlUp).Row
If Derlig1 + 1 >= 16 And Derlig1 + 1 <= 36 Then
.Range("B" & Derlig1 + 1) = Sheets("article").Range("B" & i)
.Range("C" & Derlig1 + 1) = Sheets("article").Range("C" & i)
.Range("E" & Derlig1 + 1) = Sheets("article").Range("D" & i)
End If
End With
Exit sub
End If
Next i
End With
End Sub
En outre, je ne comprends pas le "Exit sub", car si tu n'a qu'une seule valeur à renvoyer, tu peux écrire
Code:
Private Sub ListBox1_Click()
Dim Derlig As Integer, Derlig1 As Integer, C As Range
With Sheets("article")
   'Recherche dans la liste des articles
    Set C = .Range("B4:B" & .Range("B65536").End(xlUp).Row).Find(ListBox1)
    If Not C Is Nothing Then
        With Sheets("base")
        Derlig1 = .Range("B65536").End(xlUp).Row
            If Derlig1 + 1 <= 36 Then
            .Range("B" & Derlig1 + 1) = C
            .Range("c" & Derlig1 + 1) = C.Offset(0, 1)
            .Range("e" & Derlig1 + 1) = C.Offset(0, 2)
            End If
        End With
    End If
End With
End Sub
A+
kjin
 
Dernière édition:
Re : probleme macro

ma macro me permet directement en cliqant sur l'article de la listbox de remplir
les colone b,c,e de la premiere ligne vide
mais la partant de la lign 65666 il trouve la premiere ligne vide de la colone b en b42
alors que mon tableau va de la lign36 a la lign16
j'espere avoir ete plus clair je joint le fichier avec

encore merci de vous penchez sur mon probleme
 

Pièces jointes

Re : probleme macro

Re,
Modifie comme suit
Code:
Private Sub ListBox1_Click()
Dim Derlig As Integer, Derlig1 As Integer, C As Range
With Sheets("article")
   'Recherche dans la liste des articles
    Set C = .Range("B4:B" & .Range("B65536").End(xlUp).Row).Find(ListBox1)
    If Not C Is Nothing Then
        With Sheets("base")
        Derlig1 = .Range("B37").End(xlUp).Row + 1
            If Derlig1 <= 36 Then
            .Range("B" & Derlig1) = C
            .Range("C" & Derlig1) = C.Offset(0, 1)
            .Range("D" & Derlig1) = C.Offset(0, 2)
            .Range("E" & Derlig1) = C.Offset(0, 3)
            End If
        End With
    End If
End With
End Sub
A+
kjin
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
670
Réponses
8
Affichages
653
Réponses
15
Affichages
792
Réponses
5
Affichages
916
Retour