Boucle sur un fichier et boucle sur l'autre fichier
Bonjour à tous,
Voici le projet : j'ai un planning (cf photo 1), où je cherche à boucler sur chaque ligne puis par colonne pour savoir si l'agent est en "BO" (BO = jour travaillé).
SI il est en "BO" alors le met sur le planning vierge. (là ou je n'arrive pas).
Je vous montre le code + photo si besoin j'anonymiserais le fichier.
Lescellules sont fusionnés pour les colonnes c'est pour cela que j'ai mis un step 2
Private Sub SectoAuto()
Dim i As Integer
Dim m As Integer
Dim k As Integer
Dim c As Integer
Dim sem As String
Dim cheminIde As String
Dim cheminAs As String
Dim wkIde As Workbook
Dim wka As Workbook
Dim ligIde As Double
Dim colIde As Double
Dim semide
Dim lignIde
' Numero de Semaine choisi
sem = "S" & tboSemaine.Caption
'classeur A qui contient la macro
Set wka = ThisWorkbook
'chemin du planning IDE
cheminIde = tboCheminIDE.Value
'chemin du planning AS
cheminAs = tboCheminAs.Value
If cheminIde <> "" Then
'ouvre le planning IDE
Set wkIde = Workbooks.Open(cheminIde, True)
'Recupere le numéroe de semaine pour trouver le numéro de colonne
Set semide = wkIde.Sheets(1).Rows("5").Find(sem, lookat:=xlWhole)
colIde = semide.Column
'Combobox avec nom du dernier agent pour recupérer le numéro de ligne
Set lignIde = wkIde.Sheets(1).Range("A2:A150").Find(cboIde.Value, lookat:=xlWhole)
ligIde = lignIde.Row
With wkIde.Sheets(1)
k = 4
For i = 6 To ligIde 'De la ligne 6 à l'agent (qui donne le numero de ligne)
m = 2
For c = colIde To colIde + 14 Step 2 'Numero de colonne pour recuperer le debut de la semaine en fonction de la semaine voulu, Step 2 car cellules fusionnées
If .Cells(i, c).Value = "BO" Then 'Si "BO" alors met le nom dans la colonne du fichier wka
wka.Sheets("SECTOAUTO").Cells(k, m).Value = .Cells(i, 1).Value
m = m + 1
End If
Next c
k = k + 1
Next i
End With
End If
End SubPhoto du fichier de transfert :
Merci d'avance pour l'aide apportée !
Hello,
SI il est en "BO" alors le met sur le planning vierge. (là ou je n'arrive pas)
Et du coup c'est quoi l'erreur ou c'est quoi qui ne fonctionne pas ?
Je ne vois rien de choquant dans le code comme ça.
Bonsoir,
J'arrive à récupérer les noms et les mettre dans l'autre tableau mais ça fait des sauts de lignes.
Je vais anonymiser le fichier ça sera plus simple et sans userform avec paramètres prédéfinis.
Il faut les mettre dans le même dossier
Merci pour l'aide que vous m'apporterez.
Bon finalement j'ai fini par trouver
With wkIde.Sheets(1)
k = 4
For i = 6 To ligIde 'De la ligne 6 à lagent (qui donne le numero de ligne) = ICI "FFF GGG"
If WorksheetFunction.CountIf(.Range(.Cells(i, colIde), .Cells(i, colIde + 14)), "BO") > 1 Then
m = 2
For c = colIde To colIde + 13 Step 2
If .Cells(i, c).Value = "BO" Then
wka.Sheets("SECTOAUTO").Cells(k, m).Value = .Cells(i, 1).Value
End If
m = m + 1
Next c
k = k + 1
End If
Next i
End With
End IfJ'ai demandé a rechercher la ligne, si il y a un "BO" alors on boucle sur les colonnes, et quand il y a un "BO" alors on copie la valeur de la colonne 1.
Et surtout ne pas oublier de rajouter un pas de 1 pour les colonnes de l'autre fichier.
Merci quand même.