Bonjour,
J'aimerais copier mes lignes en fonction de la catégorie de cette dernière (ici Boisson dans la colonne G)
donc je met en place une condition basique mais je ne sais pas pourquoi ca ne marche pas, ca ne rentre même dans le If
Merci d'avance
J'aimerais copier mes lignes en fonction de la catégorie de cette dernière (ici Boisson dans la colonne G)
donc je met en place une condition basique mais je ne sais pas pourquoi ca ne marche pas, ca ne rentre même dans le If
Merci d'avance
VB:
Sub Try()
Dim Chemin As String, Fichier As String, J As Long, i As Integer, Cel As Range
Dim T1(1 To 1, 1 To 6) As String ' Tableau qui va contenir les infos voulues d'une ligne
Dim ws As Worksheet
Application.ScreenUpdating = False ' Bloque le raffraichissement écran (on ne voit rien de ce qui se passe
Set ws = ActiveSheet ' Plus facile à manipuler
Chemin = ThisWorkbook.Path & Application.PathSeparator ' Chemin des fichier
Fichier = "Copie de RupturesIntranet.xlsx" ' Nom du fichier
If Dir(Chemin & Fichier) = "" Then ' On vérifie si le chemin existe
MsgBox "Fichier introuvable" & vbCr & Fichier ' Si absent on le signale
Exit Sub ' Et on s'en va
End If
With Workbooks.Open(Chemin & Fichier) ' On ouvre le fichier
With .Sheets("Switchs") ' On va "travailler" avec la page Switchs
For J = 2 To .Range("B" & Rows.Count).End(xlUp).Row
For i = 1 To UBound(T1, 2) ' Pour chaque élément du tableau
' On le remplit avec les infos dela bonne colonne (Regarde l'aide de Choose ou de CHOISIR() dans une page Excel)
T1(1, i) = .Cells(J, Choose(i, "C", "G", "D", "H", "J", "N"))
Next i
' On recherche dans le fichier principal si ce matricule existe
Set Cel = ws.Columns("A").Find(What:=.Range("C" & J), LookIn:=xlValues, lookat:=xlWhole)
If Range("G" & J).Value = "Boisson" Then
If Not Cel Is Nothing Then
' Le matricule existe on remplace les données
Cel.Resize(1, UBound(T1, 2)) = T1
Else
' ' Le matricule n'existe on écrit les données à la fin
ws.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Resize(1, UBound(T1, 2)) = T1
End If
End If
Next J
End With
.Close savechanges:=False ' Ferme le fichier sans le sauvegarder
End With
End Sub