VBA Plusieurs boucle for et if imbriqué problème code.

jibs

XLDnaute Nouveau
Bonjour,
je viens vers ce forum pour tenter de résoudre un problème de code que j'ai.
Mon but est de copier une ligne d'une base de données (la selection se fait via une list box dans un userform) présente sur une feuille excel vers une autre feuille excel. Ceici tout en mettant à jour une list bos que j'ai dans un userform et qui me montre les lignes qui ont été tranférés... De plus, je dois vérifier que je ne crée pas de doublons. Donc j'effectue plusieur test:

- for pour parcourir toutes les lignes de la list box et donc de la base de données source
- if pour tester quelles sont les lignes selectionnées
- for pour parcourir la base de donnée cible
- if pour controler les doublons
-if vbYesno pour permettre à l'utilisateur de choisir si ou ou non il rajoute la ligne


une ligne doit etre ajoutée : si ellle a été selectionnée, s'il n'y a pas de doublon ou que l'utilisateur a forcé la saisie
une ligne ne doit pas etre rajoutée si : elle n'a pas ete selectionne , s'il y a un doublon et que l'utilisateur n'a pas forcé la saisie.

Voici le code ci-dessous.
Merci pour votre aide !!!



Private Sub CommandButton8_Click()
Dim j As Integer
Dim k As Integer
Dim l As Integer
Dim numero As Integer
Dim ligne As Integer


For i = 0 To ListBox4.ListCount - 1
If ListBox4.Selected(i) = True Then

For k = 1 To [nombre_charges]
If Sheets(2).Cells(ListBox4.List(i, 0) + 1, 4) = Sheets(4).Cells(k, 4) Then

If MsgBox(Sheets(2).Cells(ListBox4.List(i, 0) + 1, 4) & " : " & "Déjà présente. Etes-vous sûr de vouloir l'ajouter une nouvelle fois?", vbYesNo + vbExclamation, "Avertissement") = vbYes Then

Exit For
End If

End If

Next

With Feuil2
.Rows(ListBox4.List(i, 0) + 1).Copy
End With
With Feuil4
.Rows(1).Insert Shift:=xlDown
End With

End If

Next i

For i = 0 To ListBox4.ListCount - 1 'décoche toutes les cases
'sélection de l'item
ListBox4.Selected(i) = False
Next i

ListBox3.Clear

With Feuil4
numero = 1
For j = 1 To [nombre_charges]
.Cells(j, 1) = numero
numero = numero + 1
ListBox3.AddItem (.Cells(j, 4).Value)
Next
End With


MsgBox ("Ces lignes ont bien été ajoutées")
End Sub
 
Dernière édition:

adel53

XLDnaute Occasionnel
Re : VBA Plusieurs boucle for et if imbriqué problème code.

Bonjour
Comme a dit haytoch un fichier exemple nous permettra de mieux t'aider

Essaye tout de même de rajouter le compteur après les next pour j et k.

Cordialement
 

jibs

XLDnaute Nouveau
Re : VBA Plusieurs boucle for et if imbriqué problème code.

Bonjour,

voici un petit fichier resemblant que je vous ai préparé !

N'hésitez pas s'il vous manque des infos !!!!!

Pour l'instant mon code me permet de passer d'une listbox à l'autre mais je n'arrive pas à gérer les douclon, lorsque je répond non à ma message box, la ligne se copie quand meme ! voilà ! Merci d'avance !!!
 

Pièces jointes

  • Alimenter Listbox.xls
    100 KB · Affichages: 53
  • Alimenter Listbox.xls
    100 KB · Affichages: 50
  • Alimenter Listbox.xls
    100 KB · Affichages: 48

Zon

XLDnaute Impliqué
Re : VBA Plusieurs boucle for et if imbriqué problème code.

Salut,


jibs c'est pas cool d'ouvrir 2 fils pour la même demande.

l'autre ici
HTML:
http://www.excel-downloads.com/forum/207224-problemes-boucle-next.html#post1296917

.
 

Discussions similaires

Réponses
4
Affichages
190
Réponses
11
Affichages
278

Statistiques des forums

Discussions
312 046
Messages
2 084 848
Membres
102 686
dernier inscrit
Franck6950