Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1573 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  PB dans une boucle avec la propriété Selected !!!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PB dans une boucle avec la propriété Selected !!!

n°958945
olivier857
Posté le 21-01-2005 à 19:45:59  profilanswer
 

Slt,
 
Voilà j'ai créé un code qui me permet de copier dans un repertoire les photos que j'ai préalablement selectionnés dans une ListeBox.
 
Ce code commence par comparer les éléments selectionnés dans ma  ListeBox source (File1)  avec ceux d'une autre ListeBox (File2) visant le repertoire destinations de mes photos, puis demande a changer de nom si il y a des doublons, puis fait une copie du fichier si il y n'y a pas de boublons.
 
Le problème est que lorsque je selectionne plusieurs photos  (propriété multi select activé), le test :  If File1.Selected(i) = True  fonctionne mal.
 
En fait lorsque qu'il passe sur le 1er élément sélectionné (disons i=5) tous ce passe bien, il continu le code est fait la copie, mais quand il arrive au 2ème élément selectionné (disons i=8) il ne le vois pas comme sélectionné car il renvoie un False et non un True.
Voila je comprens pas pourquoi puisque cet élément est bien selectionné
 
Je m'arrache les cheveux sur ce code depuis des heures, il va bientôt plus beaucoup m'en rester.  
 
Voila mon code :

Code :
  1. Private Sub cmd_ajout_Click()
  2.     Dim chemin_fichier As String
  3.     Dim i, f As Integer
  4.     Dim new_nom As String   
  5.    
  6.     File2.Refresh
  7.    
  8.     For i = 0 To File1.ListCount - 1
  9.    
  10.         If File1.Selected(i) = True Then   'Test si l'élement i est sélectionné
  11.        
  12.             chemin_fichier = Dir1.Path & "\" & File1.List(i)
  13.             new_nom = File1.List(i)
  14. choix:
  15.             For f = 0 To File2.ListCount - 1
  16.                 If File2.List(f) = new_nom Then  'on test  si ce nom existe deja
  17.                    
  18.                     new_nom = InputBox("Attention le fichier " & "'" & new_nom & "'" & " correspond a une photo déjà présente dans ce thème  !" & vbNewLine & "Veuillez entrer un nouveau nom :", "Choix du nom de la photo" )
  19.                     new_nom = new_nom & ".jpg"
  20.                     GoTo choix    'on repare en choix pour tester si le nouveau nom existe
  21.                 End If
  22.            
  23.             Next f
  24.            
  25.             'on copie le fichier
  26.             FileCopy chemin_fichier, App.Path & "\multimedia\images\" & patient & "\" & theme & "\" & new_nom
  27.             File1.Refresh
  28.            
  29.         End If
  30.        
  31.     Next i   
  32.    
  33. End Sub


 
J'espère que vous aurez une idée pour moi.
 
Merci d'avance.
Olivier

mood
Publicité
Posté le 21-01-2005 à 19:45:59  profilanswer
 

n°958982
knakes
Posté le 21-01-2005 à 21:04:13  profilanswer
 

Ajoute 2 listbox dans ta form. Caches tes filelistbox (visible=false)
dans ton form_load(), copies ceci

Code :
  1. For i = 0 To Me.File1.ListCount - 1
  2. Me.List1.AddItem Me.File1.List(i)
  3. Next i
  4. For i = 0 To Me.File2.ListCount - 1
  5. Me.List2.AddItem Me.File2.List(i)
  6. Next i


Maintenant cela doit fonctionner. N'oublies pas de modifier dans ton prog 'File1' devient 'List1' ...
 
le seul souci qui pourrai exister c'est que ta listbox ne se met pas à jour lorsque tu copies le fichier. Deux cas s'offrent à toi :
• le premier, tu rajoutes (apres la copie de fichier)

Code :
  1. List2.AddItem new_nom


• le second tu rajoutes (même endroit)

Code :
  1. List2.Clear
  2. For i = 0 To Me.File2.ListCount - 1
  3. Me.List2.AddItem Me.File2.List(i)
  4. Next i


Voilà. A toi de voir.


Message édité par knakes le 21-01-2005 à 21:05:06
n°959017
olivier857
Posté le 21-01-2005 à 22:05:14  profilanswer
 

Merci j'ai essayé mais ca ne marche pas non plus.

n°959020
olivier857
Posté le 21-01-2005 à 22:12:53  profilanswer
 

C'est bon j'ai trouvé en fait ca venaot d'une ligne qui na rien a foutre la et qui d'attract le reste :
 
File1.Refresh


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  PB dans une boucle avec la propriété Selected !!!

 

Sujets relatifs
problème de boucleAccélérer une boucle
[PHP] Problème avec une bouclePassage de variable depuis une boucle ???
plusieurs commandes dans une boucle for[PHP]Récuperation d'une boucle en variable
Boucle : tous les fichiers d'un dossier et non un spécifiqueexcel cellule colonne vbs boucle
Controler une boucle infinietouche [TAB] qui boucle uniquement sur input + accessibilite
Plus de sujets relatifs à : PB dans une boucle avec la propriété Selected !!!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR