arch enemy123456
Messages postés26Date d'inscriptionjeudi 9 novembre 2006StatutMembreDernière intervention 8 mai 2007
-
20 nov. 2006 à 17:11
arch enemy123456
Messages postés26Date d'inscriptionjeudi 9 novembre 2006StatutMembreDernière intervention 8 mai 2007
-
22 nov. 2006 à 15:45
bonjour tout le monde,
beh j ai un souci là en VBA, j ai comparer deux colonnes à partir des deux classeures avec ce code la :
Sub comparaison()
Application.ScreenUpdating = False
Dim Collection1 As New Collection, collection2 As New Collection
Dim Cellule1 As Range, Cellule2 As Range
Dim Element1 As Object, Element2 As Object
Dim Time1 As Date, Time2 As Date
Time1 = Now()
Workbooks("balance_1.xls").Activate
For Each Cellule1 In Range("a1:a592")
Collection1.Add Cellule1
Next Cellule1
Workbooks("Balance_2.xls").Activate
For Each Cellule2 In Range("a1:a592")
collection2.Add Cellule2
Next Cellule2
For Each Element1 In Collection1
For Each Element2 In collection2
If Element1 <> Element2 Then
Element1.Font.Color = vbRed
Else
Element1.Font.Color = vbBlack
Exit For
End If
Next Element2
Next Element1
Time2 = Now()
Debug.Print "Test collection :" & Format$(Time2 - Time1, "hh:mm:ss")
Application.ScreenUpdating = True
End Sub
le code ça marche bien il compare et tout mé moi je veu s avoire et ce que possible d apartir d une combobox puis-je ouvrir le repetoire system et selectionner le classuer" Balance_2" et que la ligne en rouge
pren la valeur de combobox ?
parceque la balance_1 et standard mé balance_2(à comparer) je ne sais pas le client qui le nom qui va le donnée vous vouillez ? et c'est ça le souci
merci pour vous
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 20 nov. 2006 à 23:19
Pourquoi ne pas utiliser une boîte de dialogue et laisser l'utilisateur choisir son fichier ?
Dim Fichier As String
Fichier = Application.GetOpenFilename("Fichiers Excel (*.xls),*.xls,Tous (*.*),*.*")
If Fichier <> False Then
Workbooks.Open Fichier
else
exit sub
end if
ensuite tu mets ton code jusqu'à la ligne en rouge et tu écris
Workbooks(Fichier).activate
MPi
Vous n’avez pas trouvé la réponse que vous recherchez ?
arch enemy123456
Messages postés26Date d'inscriptionjeudi 9 novembre 2006StatutMembreDernière intervention 8 mai 2007 21 nov. 2006 à 12:43
Bonjour MPI merci pour votre réponse c sympa. mais j ai un bouge sur la ligne " If Fichier <> False then " ??!!
en tout cas moi j ai déja crée une listbox dans la UserForm et une bouton " sélectionné un dossier " elle ouvre le répertoire et quand je clike sur un dossier la listbox affiche tt les classeur excel existants danes ce dossier
voila le code de bouton : Ps ( il marche bien )
Private Sub CommandButton1_Click()
x = GetDirectory
ligne = Dir(x & "" & "*.xls")
Do While ligne <> ""
DoEvents
ligne = Dir()
ListBox1.AddItem ligne
Loop
End Sub
le souci qui reste pour moi c'est quand je sélectionne une ligne (classuer) dans la listbox
je veux que le nom de classeur sélectionné remplace les points ici dans mon cas
Workbooks("............").activate* vous voyez ?!
arch enemy123456
Messages postés26Date d'inscriptionjeudi 9 novembre 2006StatutMembreDernière intervention 8 mai 2007 21 nov. 2006 à 12:58
re bonjour, Mpi pour votre code ça marche maintenant, j ai changer (<> false ) par ( <>"")
mais le problème et c le même que je cherche moi meme c'est quoi la commande
que puis-je mettre à la place des points ?
parceque meme dans votre code j ai un bouge là " workbooks(Fichier).activate "
l erreur est " (Fichier) "
parceque j ai met la meme ligne workbooks("balance_1.xls").activate il marche bien vous voyez
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 22 nov. 2006 à 11:34
Normalement, avec Workbooks, il faut spécifier le chemin complet.
Il faudrait peut-être que tu affiches ce que contient la variable Fichier avec un simple MsgBox juste avant de tenter de l'ouvrir et vérifier s'il n'y a pas d'erreur de syntaxe (?)
arch enemy123456
Messages postés26Date d'inscriptionjeudi 9 novembre 2006StatutMembreDernière intervention 8 mai 2007 22 nov. 2006 à 15:45
oui MPi j ai déja ajouter un msg de conférmation mais l affichage de msgbox lié à la sélection c'est à dire j ai ajouter l code au niveau de listbox et voila le code :
Private Sub ListBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single)
Dim rep As Integer
If mbDisableEvents Then Exit Sub
mbDisableEvents = True
With Me.ListBox1
If .ListCount > 0 Then
If .ListIndex = .ListCount - 1 Then
.ListIndex = .ListCount - 1
End If
End If
MsgBox "Vous avez sélectionné :" *& .List(.ListIndex)
End With
mbDisableEvents = False
End Sub
* & .Liste(.Listeindex) = la ligne sélectionné
supposant j ai sélectionné " Balance_2.xls"
le msg va etre comme suite:
"Vous avez sélectionné : Balance_2.xls "
et pour le souci c'est régler j ai met " Workbooks(Listbox1.value).activate " c'est à dire il va garder la valeur sélectionné dans la listbox .
et merci infinment pour votre reponses c sympa merci