Bonjour à tous,
Mon projet est de mettre à jour un fichier de suivi d'une activité à partir d'une extraction issue de notre logiciel entrepôt (wms).Dans un précédent message j'ai obtenu de l'aide très efficace !! de vgendron, pour une macro qui permet de comparer le fichier de suivi et l'extraction est mettre à jour les données quand nécessaire.
Pour finaliser mon projet j'ai encore besoin de votre aide. Les colonnes de dates contenues dans l'extraction dans un format non exploitable. Excel propose de convertir au format xx vers 20xx. Mais je n'ai pas réussi à intégrer cette conversion dans la macro.
Je précise que je débute en VBA. J'ai essayé de passer par une macro enregistré mais ça ne fonctionne pas. Je vous mets ci dessous la macro proposée et je joint un exemple du fichier à mettre à jour et de l'extraction :
Sub update()
Dim TabSuivi() As Variant
Dim TabExtract() As Variant
With Sheets("Suivi")
fin = .Range("A" & .Rows.Count).End(xlUp).Row 'dernière ligne non vide de la colonne A
TabSuivi = .Range("A2:J" & fin).Value 'on met dans un tablo
End With
With Sheets("extraction")
fin = .Range("A" & .Rows.Count).End(xlUp).Row
TabExtract = .Range("A2:J" & fin).Value
End With
Merci par avance de vos aides !
For i = LBound(TabExtract, 1) To UBound(TabExtract, 1) 'pour chaque ligne du tablo
DéjàListé = False
For j = LBound(TabSuivi, 1) To UBound(TabSuivi, 1) 'on cherche si le code existe déjà
If TabSuivi(j, 2) = TabExtract(i, 2) Then
DéjàListé = True
'on met à jour la ligne
For col = LBound(TabSuivi, 2) To UBound(TabSuivi, 2)
TabSuivi(j, col) = TabExtract(i, col)
Next col
Exit For
End If
Next j
If Not (DéjàListé) Then
'il faut ajouter une ligne
With Sheets("Suivi")
fin = .Range("A" & .Rows.Count).End(xlUp).Row
For col = LBound(TabSuivi, 2) To UBound(TabSuivi, 2)
.Cells(fin + 1, col) = TabExtract(i, col)
Next col
End With
End If
Next i
With Sheets("Suivi")
.Range("A2").Resize(UBound(TabSuivi, 1), UBound(TabSuivi, 2)) = TabSuivi
End With
End Sub
Mon projet est de mettre à jour un fichier de suivi d'une activité à partir d'une extraction issue de notre logiciel entrepôt (wms).Dans un précédent message j'ai obtenu de l'aide très efficace !! de vgendron, pour une macro qui permet de comparer le fichier de suivi et l'extraction est mettre à jour les données quand nécessaire.
Pour finaliser mon projet j'ai encore besoin de votre aide. Les colonnes de dates contenues dans l'extraction dans un format non exploitable. Excel propose de convertir au format xx vers 20xx. Mais je n'ai pas réussi à intégrer cette conversion dans la macro.
Je précise que je débute en VBA. J'ai essayé de passer par une macro enregistré mais ça ne fonctionne pas. Je vous mets ci dessous la macro proposée et je joint un exemple du fichier à mettre à jour et de l'extraction :
Sub update()
Dim TabSuivi() As Variant
Dim TabExtract() As Variant
With Sheets("Suivi")
fin = .Range("A" & .Rows.Count).End(xlUp).Row 'dernière ligne non vide de la colonne A
TabSuivi = .Range("A2:J" & fin).Value 'on met dans un tablo
End With
With Sheets("extraction")
fin = .Range("A" & .Rows.Count).End(xlUp).Row
TabExtract = .Range("A2:J" & fin).Value
End With
Merci par avance de vos aides !
For i = LBound(TabExtract, 1) To UBound(TabExtract, 1) 'pour chaque ligne du tablo
DéjàListé = False
For j = LBound(TabSuivi, 1) To UBound(TabSuivi, 1) 'on cherche si le code existe déjà
If TabSuivi(j, 2) = TabExtract(i, 2) Then
DéjàListé = True
'on met à jour la ligne
For col = LBound(TabSuivi, 2) To UBound(TabSuivi, 2)
TabSuivi(j, col) = TabExtract(i, col)
Next col
Exit For
End If
Next j
If Not (DéjàListé) Then
'il faut ajouter une ligne
With Sheets("Suivi")
fin = .Range("A" & .Rows.Count).End(xlUp).Row
For col = LBound(TabSuivi, 2) To UBound(TabSuivi, 2)
.Cells(fin + 1, col) = TabExtract(i, col)
Next col
End With
End If
Next i
With Sheets("Suivi")
.Range("A2").Resize(UBound(TabSuivi, 1), UBound(TabSuivi, 2)) = TabSuivi
End With
End Sub