Bonjour,
J'ai un problème, quand j'utilise une macro pour actualiser un tableau dans une feuille "Cockpit", la plage dans ma formule de ma feuille B change...
Celle ci diminue, elle passe de 1500 à 1200 par exemple.
Savez vous comment résoudre le problème ?
Est ce normal d'avoir le lien du fichier avant la macro quand je veux l'affecter ?
J'ai un problème, quand j'utilise une macro pour actualiser un tableau dans une feuille "Cockpit", la plage dans ma formule de ma feuille B change...
Celle ci diminue, elle passe de 1500 à 1200 par exemple.
Savez vous comment résoudre le problème ?
Est ce normal d'avoir le lien du fichier avant la macro quand je veux l'affecter ?
VB:
'Cockpit OTC GQ derniere version.xls'!Copie
VB:
=SOMMEPROD(($A5<>$A4)*(Cockpit!$Q$7:$Q$1500=0)*(Cockpit!$H$7:$H$1500=$A5)*Cockpit!$J$7:$J$1500)
Code:
Sub Copie()
'Copie
Application.ScreenUpdating = False
Sheets("Copie Formule").Select
Range("A7:R1500").Select
Selection.Copy
Sheets("Cockpit").Select
Range("A7").Select
Selection.PasteSpecial Paste:=xlPasteValues, Paste:=xlPasteFormats
'Converti colonne E, G, H, Q, R en nombre
Range("E7:E1500").Select
Selection.TextToColumns , FieldInfo:=Array(1, 1)
Range("G7:G1500").Select
Selection.TextToColumns , FieldInfo:=Array(1, 1)
Range("H7:H1500").Select
Selection.TextToColumns , FieldInfo:=Array(1, 1)
Range("Q7:Q1500").Select
Selection.TextToColumns , FieldInfo:=Array(1, 1)
Range("R7:R1500").Select
Selection.TextToColumns , FieldInfo:=Array(1, 1)
ActiveSheet.UsedRange.Columns(2).EntireColumn.Insert 'insère une colonne auxiliaire
DL = Sheets("Cockpit").Range("F65500").End(xlUp).Row
With ActiveSheet.Range("B7:B" & DL)
.FormulaR1C1 = "=IF(COUNTIF(Liste!C,Cockpit!RC[4])>0,1,"""")"
.Value = .Value 'supprime les formules
.EntireRow.Sort .Cells, xlDescending 'tri pour regrouper et accélérer
On Error Resume Next 'si aucune SpecialCell
.SpecialCells(xlCellTypeConstants, 1).EntireRow.Delete
.EntireColumn.Delete 'supprime la colonne auxiliaire
End With
With ActiveSheet.UsedRange: End With 'actualise les barres de défilement
'Sélectionne la cellule A1
Range("A1").Select
End Sub