Sélection d'un classeur Excel et manipulation de ses feuilles

Bonjour à tous,

Je suis débutant en VBA Excel et mon souci est le suivant:

Je travaille sur une macro excel et j'aimerai qu'en cliquant sur le bouton "clients à relancer", l'utilisateur puisse sélectionner un autre classeur contenant les noms de plusieurs clients, suivant un modèle défini. Après avoir choisi le classeur, la macro doit parcourir la première colonne de celui-ci, dans laquelle se trouve les matricules des clients et les comparer avec ceux contenu dans un tableau.

Seuls les matricules ne figurant pas dans ledit tableau seraient donc ceux des clients à relancer...

Mon problème est que lorsque je clique sur le bouton, je sélectionne bel et bien le fichier de mon choix, mais je ne parviens pas à effectuer la comparaison décrite plus haut(D'une part c'est pcq je ne parviens pas dans mon code à récupérer le nom du classeur sélectionné). Merci d'avance

Le code est le suivant:

[CODE]

Private Sub Clients_à_relancer_Click()

Dim B As Object, F As Worksheet

Set B = Sheets("Feuil2")

Dim row1 As Integer, row2 As Integer, v1 As String, v2 As String, v3 As String, v4 As String, v5 As String

Dim tableau() As Variant, fichier As Variant

Dim var As Integer, row As Integer, l As Integer

var = Range("A1").End(xlDown).row

ReDim tableau(var - 2)

For i = 0 To var - 3

tableau(i) = Range("A" & i + 3).Value

Next i

'Affiche la boîte de dialogue "Ouvrir"

fichier = Application.GetOpenFilename("Fichiers Excel (*.xls; *.xlsm),*.xls;*.xlsm")

'On sort si aucun fichier n'a été sélectionné ou si l'utilisateur

'a cliqué sur le bouton "Annuler", ou sur la croix de fermeture.

If fichier = False Then Exit Sub

Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = "Clients à relancer"

Workbooks.Open (fichier)

Set F = ActiveWorkbook.Worksheets("Feuil1")

While (F.Cells(row1, 1) <> "")

For i = 0 To var - 3

If F.Cells(row1, 1) = tableau(i) Then

F.Activate

v1 = ActiveSheet.Cells(row1, 1)

v2 = ActiveSheet.Cells(row1, 2)

v3 = ActiveSheet.Cells(row1, 3)

v4 = ActiveSheet.Cells(row1, 7)

v5 = ActiveSheet.Cells(row1, 9)

Sheets("Clients à relancer").Activate

ActiveSheet.Cells(row2, 1) = v1

ActiveSheet.Cells(row2, 2) = v2

ActiveSheet.Cells(row2, 3) = v3

ActiveSheet.Cells(row2, 4) = v4

ActiveSheet.Cells(row2, 6) = v5

row2 = row2 + 1

End If

Next i

row1 = row1 + 1

Wend

End Sub

[ /CODE]

Bonjour Menguef

Merci d'éditer ton post et de mettre ton code entre le balises [ CODE] et [ /CODE] (sans espace après le "[")

Sinon, il faut définir une variable pour le classeur

Dim Wbk as Workbook

Et ensuite

  Set Wbk = Workbooks.Open(fichier)
  Set F = Wbk.Sheets("Feuil1")

Tu pourras manipuler ton classeur et la feuille comme tu veux par la suite

@+

[quote=BrunoM45 post_id=868008 time=1588935410 user_id=15789]

Bonjour Menguef

Merci d'éditer ton post et de mettre ton code entre le balises [ CODE] et [ /CODE] (sans espace après le "[")

Sinon, il faut définir une variable pour le classeur

Dim Wbk as Workbook

Et ensuite

  Set Wbk = Workbooks.Open(fichier)
  Set F = Wbk.Sheets("Feuil1")

Tu pourras manipuler ton classeur et la feuille comme tu veux par la suite

@+

[/quote]

Ok merci Bruno

Problème résolu, Merci encore

Rechercher des sujets similaires à "selection classeur manipulation feuilles"