Re : si cellule X commence par 2014 , X étant déjà résultat d' une macro
je viens de rajouter message rien ,,,,,,rien
je reprécise : ma macro est
Sub Récap7Gaz2013()
Dim WkC As Workbook, WkB As Workbook
Dim i&, j&, L&, s&
Dim Gaz()
Application.ScreenUpdating = 0: Application.EnableEvents = 0: Application.DisplayAlerts = 0
Workbooks.Open ThisWorkbook.Path & "\GESTION2013.xlsm"
'définition de Wkc :classeur gestion, WkB : classeur base fact
Set WkC = Workbooks("GESTION2013.xlsm"): Set WkB = ThisWorkbook
Gaz = Array("404", "134", "407", "410", "NBR", "DEC", "N-m", "N-N", "REC", "REI", "HS", "CLO")
'i est une ligne, 8 correspond à la 8ème ligne où commence le tableau gaz
i = 8
'sur BASE FACT on commence la récap au 5ème onglet
For s = WkB.Sheets.Count To 5 Step -1
With WkB.Sheets(s)
'on faitla recherche dans chaque feuille entre la ligne 22 et 40
For j = 22 To 40 'j et une ligne
For L = 0 To UBound(Gaz) 'à voir
'dans BASE FACT, si à la 1ère cellule il y a un "R"suivi par "404" ( les 3 autres définis dans array) ET .Cells(j, 8):dans base fact entre ligne 22 et 40,la quantité en 8ème colonne , ALORS ...
'UCase converti la cellule en majuscule pour que le R soit reconnu
'le point avant cells, c'est pour dire que ces cellules sont celles qui accompagnent le with, donc de FACT BASE et non de la feuille active gaz 2013
'cell est une cellule qui est définie par sa ligne puis sa colonne
'If UCase(.Cells(j, 1)) Like "*R*" & Gaz(L) & "*" And .Cells(j, 8) And .Range("h17") = Year(Now) & Format(Range("Num_Fact"), "000") <> "" Then
'If UCase(.Cells(j, 1)) Like "*R*" & Gaz(L) & "*" Then
If UCase(.Cells(j, 1)) Like "*R*" & Gaz(L) & "*" And .Cells(j, 8) <> "" Then
If Range("H17").Value Like "2014*" Then
MsgBox .Cells(j, 1).Address
'If .Cells(j, 8) And .Cells(18, 8) = Year(Now) <> "" Then
'1
n récupère l' info de la date dans " gaz 2013" Cells(i, 1)dans la 1ère colonne quand il y a un chiffre rempli dans quantité
WkC.Sheets("gaz 2014 detail").Cells(i, 1) = .[H18]
'2: on récupère l'info du lien hypertexe, Cells(i, 2),à 8ème ligne dans la 2ème colonne
WkC.Sheets("gaz 2014 detail").Hyperlinks.Add Anchor:=Cells(i, 2), Address:=WkB.FullName, _
SubAddress:="'" & WkB.Worksheets(s).Name & "'!H17", _
TextToDisplay:=Str(WkB.Sheets(s).Range("H17"))
'adresse de gaz 2013, on place ce tableau à la 8ème ligne, à partir de la 4ème colonne les résultats de BASE FACT entre ligne 22 et 40,la quantité en 8ème colonne
WkC.Sheets("gaz 2014 detail").Cells(i, L + 4) = .Cells(j, 8)
WkC.Sheets("gaz 2014 detail").Cells(i, 8) = .[J12]
WkC.Sheets("gaz 2014 detail").Cells(i, 9) = .[J13]
WkC.Sheets("gaz 2014 detail").Cells(i, 10) = .[J14]
WkC.Sheets("gaz 2014 detail").Cells(i, 11) = .[J15]
WkC.Sheets("gaz 2014 detail").Cells(i, 12) = .[J16]
WkC.Sheets("gaz 2014 detail").Cells(i, 13) = .[J17]
WkC.Sheets("gaz 2014 detail").Cells(i, 14) = .[J18]
WkC.Sheets("gaz 2014 detail").Cells(i, 15) = .[J19]
i = i + 1
End If
End If
Next L
Next j
End With
Next s
' POUR EFFACER TOUTES LES LIGNES QUI NE CONCERNENT PAS L' ANNEE EN COURS
'For n = Range("B" & Rows.Count).End(xlUp).Row To 7 Step -1
'If Range("B" & n).Value Like "*2013*" Then
' Rows(n).ClearContents
' End If
'Next
'For m = Range("B" & Rows.Count).End(xlUp).Row To 7 Step -1
' If Range("B" & m).Value Like "*2012*" Then
'Rows(m).ClearContents
' End If
' Next
WkC.Save:
Application.ScreenUpdating = 1: Application.EnableEvents = 1: Application.DisplayAlerts = 1
End Sub