bonjour a tous je vous explique ce que j'aurais besoin

dans la colonne A le nom des fichiers source (il peut y avoir des noms différents)avec un lien hypertexte

colonne B ref article (toujours diffèrent)

colonne C ref palette (peut y avoir des différence)

colonne D j'indique le nom du client a qui j'attribut cette article

le truc c'est que quand je clic sur modifier le client il ouvre le fichier modifie une ligne referme le fichier et recommence pour la suivante,

et je dois mettre un "X" en colonne F pour qu'il sache qu'el ligne modifier dans le fichier source, j'aimerais plutôt qu'il enregistre quand il y a un nom dans la colonne D
Nom : FICHIER.jpg
Affichages : 523
Taille : 278,6 Ko

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Sub Modifier_client()
Dim w As Worksheet, c As Range, i&, client$, lig&, fichier$, cc As Range, n&
Set w = Sheets("Feuil1")
If Application.CountIf(w.[F:F], "X") = 0 Then Exit Sub
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each c In w.[F:F].SpecialCells(xlCellTypeConstants)
    If UCase(c) = "X" Then
        i = c.Row
        client = w.Cells(i, 4)
        lig = Val(w.Cells(i, 5))
        If lig <= 0 Then
            w.Cells(i, 6) = ""
        Else
            fichier = w.Cells(i, 1).Hyperlinks(1).Address
If Dir(fichier) = "" Then fichier = ThisWorkbook.Path & "\" & fichier
            With Workbooks.Open(fichier).Sheets(1) 'ouvre le fichier
                Set cc = .Cells.Find("AFFAIRE/CLIENT")
                If cc Is Nothing Then
                    w.Cells(i, 6) = ""
                Else
                    n = n + 1
                .Cells(lig, cc.Column) = client
                End If
            .Parent.Close Not cc Is Nothing    'enregistre et ferme le fichier
            End With
        End If
    End If
Next
MsgBox n & " cellule(s) modifiée(s) dans les fichiers sources"
End Sub
enrg1.zip