Ne pas prendre en compte une ligne lors d'une extraction
Bonjour tout le monde,
Je travail sur un fichier excel dans lequel un code vba (que je n'ai pas codé ) permet de prendre les données de plusieurs fichiers.
Le code marche bien à l'exception que dans l'un des fichiers dont j'extrait les données, une ligne n'est pas à prendre en compte, elle est en plein milieu de ce fichier. J'aurais voulu savoir comment il était possible pour ce fichier spécifique de prendre toutes les données sauf cette ligne.
voilà le code en question :
Merci d'avance pour votre aide.
Sub TelechargementValorisations()
Dim wbPF As Workbook, wMouvement As Worksheet, wbPFValo As Worksheet
Dim Chemin As String, NomPF As String, Fichier As String, DateFin As String, Année As String, Mois As String, codePF As String, _
DatePortf As String, MoisPf As String, AnneePf As String, Adresse As String
Dim DateTelechargement As String, MoisTelechargement As Integer, AnneeTelechargement As Integer
Dim Bool As Boolean, nbPF As Integer, rowIntro As Integer, colonne As Integer, ColDebut As Integer, row As Integer
Application.DisplayAlerts = False
DateFin = wIntro.Cells(6, 4).Value
Année = Mid(DateFin, 7, 4)
Mois = Mid(DateFin, 4, 2)
DatePortf = MonthName(Mois) & "-" & Année
Adresse = wIntro.Cells(3, 2).Value
Chemin = Adresse & "\" & MonthName(Mois) & "-" & Année
nbPF = wIntro.Cells(6, 2).End(xlDown).row
'récupération de la date voulue de début de téléchargement
Do
DateTelechargement = InputBox("à partir de quel date (mois) voulez vous commencer le téléchargement des données (au format mmaaaa)?", "Date téléchargement")
If Len(DateTelechargement) = 6 And IsNumeric(DateTelechargement) And Mid(DateTelechargement, 1, 2) <= 12 Then
MoisTelechargement = Mid(DateTelechargement, 1, 2)
AnneeTelechargement = Mid(DateTelechargement, 3, 4)
Bool = True
Else
MsgBox ("Le format de date saisie n'est pas valide")
Bool = False
End If
Loop While Bool = False
'récupération de la colonne à laquelle commencer le téléchargement (en fonction de la date indiquée)
colonne = 10
Do
If Mid(wValo.Cells(1, colonne).Value, 1, 2) = "VB" And Mid(wValo.Cells(1, colonne).Value, 10, 4) >= AnneeTelechargement And _
Mid(wValo.Cells(1, colonne).Value, 7, 2) >= MoisTelechargement Then
ColDebut = colonne
Bool = False
End If
colonne = colonne + 1
Loop While Bool = True
'suppression des éventuelles valorisations présentes postérieures à la date de téléchargement indiquée
wValo.Range(wValo.Cells(63, ColDebut), wValo.Cells(wValo.Cells(Rows.Count, 1).End(xlUp).row + 1, wValo.Cells(1, Columns.Count).End(xlToLeft).Column + 1)).ClearContents
row = 2
For rowIntro = 6 To nbPF
NomPF = wIntro.Cells(rowIntro, 2).Value
Fichier = "\" & NomPF & " - Portefeuille " & Année & "-" & Mois & ".xls"
Set wbPF = Workbooks.Open(Chemin & Fichier, ReadOnly:=True, UpdateLinks:=0)
Windows(wbPF.Name).Visible = True
Set wbPfMvt = wbPF.Worksheets("Mouvements")
Set wbPFValo = wbPF.Worksheets("Valo historiques")
rowWPF = 11
Do While wbPFValo.Cells(rowWPF, 1).Value <> ""
Bool = False
'regarde si le code est déjà présent dans le fichier
For wValoRow = 2 To wValo.Cells(2, 3).End(xlDown).row
If wValo.Cells(wValoRow, 3).Value = wbPFValo.Cells(rowWPF, 2).Value Then
Bool = True
rowWValoModif = wValoRow
Exit For
End If
Next wValoRow
'insertion du nouveau code (le cas échéant) et de son historique (ainsi que de données: fonds, secteur...)
If Bool = False Then
rowWValoModif = wValo.Cells(2, 3).End(xlDown).row + 1
wValo.Rows(rowWValoModif).Insert
wValo.Cells(rowWValoModif, 1).Value = NomPF
For i = 1 To 4
wValo.Cells(rowWValoModif, i + 1).Value = wbPFValo.Cells(rowWPF, i).Value
Next i
End If
'insertion des nouvelles valorisations à partir de la date de téléchargement
For colonne = ColDebut To wValo.Cells(1, 1).End(xlToRight).Column
For Z = 5 To wbPFValo.Cells(10, 1).End(xlToRight).Column
If wValo.Cells(1, colonne).Value = wbPFValo.Cells(10, Z).Value Then
wValo.Cells(rowWValoModif, colonne).Value = wbPFValo.Cells(rowWPF, Z).Value
Exit For
End If
Next Z
Next colonne
row = row + 1
rowWPF = rowWPF + 1
Loop
wbPF.Close
Set wbPF = Nothing
Next rowIntro
Application.DisplayAlerts = True
MsgBox ("Extraction terminée")
End Sub
Bonjour et bienvenue sur le forum
Ton code est fort beau
Mais comme toute macro
Il aurait tout à gagner
D'être accompagné
D'un joli fichier
Bye !