Range à définir

Bonjour je suis débutante en VBA et je rame un peu.

J'ai un TCD qui prend en compte deux onglets à charger au préalable et l'ancien code (que je n'ai pas fait) prenait en compte une plage bien précise.

Cependant les deux fichiers source à charger changent souvent et la plage aussi du coup.

On me demande d'adapter le code pour que la macro prennent en compte une plage qui s'adapte au colonne et ligne ajoutées

Voici l'ancien code:

Sheets(4).Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlConsolidation, SourceData:= _
Array(Array("'2'!R1C1:R305C22", "Item1"), Array("'3'!R1C1:R109C25", "Item2")), _
'Version:=xlPivotTableVersion14).CreatePivotTable TableDestination:= _
'"[MacroRapproBilling_Test4.xlsm]TCD!R1C1", TableName:="PivotTable3", _
'DefaultVersion:=xlPivotTableVersion14

Il se terminait à la ligne 305 et la colonne 22 pour le premier fichier et à la ligne 109 et colonne 25 pour le deuxième fichier.

Voici ce que j'ai fait

Dim DerLig As Long
Dim DerCol As String

DerLig = Range("A" & Rows.Count).End(xlUp).Row 'dernière ligne du fichier
DerCol = Cells(1, Columns.Count).End(xlToLeft).Column 'dernière colonne du fichier

mais je sais pas comment le remplacer dans cette ligne, je ne connais pas du tout la syntaxe de VBA

j'ai essayé plein de chose comme Array("'2'!R1C1:R(DerLig)C(DerCol) ", par exemple mais rien ne marche

Comment écrire cela ?

Merci par avance

Bonjour,

Je pense que ce serait :

"'2'!R1C1:R" & DerLig & "C" & DerCol

Mais les sources ne sont pas des tableaux structurés. Ça pourrait être plus facile !

"'2'!MonTableau"

Enfin, j'imagine...

Cdlt,

Merci d'avoir répondu

Du coup j'ai remplacé par ça:

ActiveWorkbook.PivotCaches.Create(SourceType:=xlConsolidation, SourceData:= _
Array(Array("'2'!R1C1:R" & DerLig & "C" & DerCol, "Item1"), Array("'3'!R1C1:R109C25", "Item2")), _
Version:=xlPivotTableVersion14).CreatePivotTable TableDestination:= _
"[Copie de MacroRapproBilling_Test5.xlsm]TCD!R1C1", TableName:="PivotTable3", _
DefaultVersion:=xlPivotTableVersion14

Ca me met "argument ou appel de procédure incorrect

Après j'ai essayé ça:

Tableau = R1C1:R & DerLig & C & DerCol

Sheets(4).Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlConsolidation, SourceData:= _
Array(Array("'2'!Tableau", "Item1"), Array("'3'!Tableau", "Item2")), _
Version:=xlPivotTableVersion14).CreatePivotTable TableDestination:= _
"[Copie de MacroRapproBilling_Test5.xlsm]TCD!R1C1", TableName:="PivotTable3", _
DefaultVersion:=xlPivotTableVersion14

Ca m'a mis "erreur de syntaxe"

J'ai aussi essayé Tableau = Cells(1,1):Cells(DerLig,DerCol) mais ca ne marche pas nn plus.

J'ai vraiment du mal avec la syntaxe

Jai essayé aussi :

Dim DerLig As Variant
Dim DerCol As Variant
Dim Tableau As Range

DerLig = Range("A" & Rows.Count).End(xlUp).Row 'dernière ligne du fichier
DerCol = Cells(1, Columns.Count).End(xlToLeft).Column 'dernière colonne du fichier
'Cells(1, DerCol & DerLig).Name = "Plage"

Tableau = Range(DerCol, DerLig)
'Et jai aussi essayé Tableau = Range(DerCol & DerLig)

Sheets(4).Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlConsolidation, SourceData:= _
Array(Array("'2'!R1C1:Tableau", "Item1"), Array("'3'!R1C1:R109C25", "Item2")), _
Version:=xlPivotTableVersion14).CreatePivotTable TableDestination:= _
"[Copie de MacroRapproBilling_Test5.xlsm]TCD!R1C1", TableName:="PivotTable3", _
DefaultVersion:=xlPivotTableVersion14

Ca m'a mis la méthode Range de l'objet _Global a échoué

En fait, ce que je voulais dire, c'est de créer (si ce n'est pas déjà le cas) un tableau structuré (via Insertion/Tableau) sur excel pour la plage '2'!R1C1:R305C22 (et pour l'autre aussi).

Par exemple, vous les appelez Tab2 et Tab3 (à moins qu'ils soient déjà nommés bien sûr). Ensuite, en remplaçant dans le code ainsi :

Sheets(4).Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlConsolidation, SourceData:= _
Array(Array("Tab2", "Item1"), Array("Tab3", "Item2")), _
'Version:=xlPivotTableVersion14).CreatePivotTable TableDestination:= _
'"[MacroRapproBilling_Test4.xlsm]TCD!R1C1", TableName:="PivotTable3", _
'DefaultVersion:=xlPivotTableVersion14

'ou

Sheets(4).Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlConsolidation, SourceData:= _
Array(Array(range("Tab2"), "Item1"), Array(range("Tab3"), "Item2")), _
'Version:=xlPivotTableVersion14).CreatePivotTable TableDestination:= _
'"[MacroRapproBilling_Test4.xlsm]TCD!R1C1", TableName:="PivotTable3", _
'DefaultVersion:=xlPivotTableVersion14

Ça devrait être mieux.

Après, je ne garantis rien car les TCD ne sont pas vraiment ma spécialité...

Et aussi, le second problème c'est que c'est un code obtenu par l'enregistreur de macros. On ne comprend pas vraiment les liens entre les données. Ce serait peut-être plus simple si vous précisiez quels sont les classeurs, les feuilles et les plages nommés impliquées.

Cdlt,

D'accord j'ai compris le cheminement j'y avais pensé aussi pour avoir une facilité de lecture.

Mais ça ne change pas mon problème qui est que je ne sais pas comment écrire cette formule car je souhaite changer des nombres fixes (305 et 22 pour l'un et 109 et 25 pour l'autre) dans cette formule ....R305C22 par des chiffres variables qui changent avec le temps

Voici le Sub en entier

Sub tcddd()

Dim DerLig As Variant
Dim DerCol As Variant
'Dim Tableau As Variant

DerLig = Range("A" & Rows.Count).End(xlUp).Row  'dernière ligne du fichier
DerCol = Cells(1, Columns.Count).End(xlToLeft).Column   'dernière colonne du fichier
'Cells(1, DerCol & DerLig).Name = "Plage"
'Tableau = Range($DerLig & $DerCol)

      Sheets(4).Select
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlConsolidation, SourceData:= _
        Array(Array("'2'!R1C1:R & DerLig & "C" "& DerCol, "Item1"), Array("'3'!R1C1:R109C25", "Item2")), _
        Version:=xlPivotTableVersion14).CreatePivotTable TableDestination:= _
        "[Copie de MacroRapproBilling_Test5.xlsm]TCD!R1C1", TableName:="PivotTable3", _
        DefaultVersion:=xlPivotTableVersion14

'      Sheets(4).Select
'    ActiveWorkbook.PivotCaches.Create(SourceType:=xlConsolidation, SourceData:= _
'        Array(Array("'2'!R1C1:R305C22", "Item1"), Array("'3'!R1C1:R109C25", "Item2")), _
'        Version:=xlPivotTableVersion14).CreatePivotTable TableDestination:= _
'        "[MacroRapproBilling_Test4.xlsm]TCD!R1C1", TableName:="PivotTable3", _
'        DefaultVersion:=xlPivotTableVersion14
    ActiveSheet.PivotTables("PivotTable3").DataPivotField.PivotItems( _
        "Nombre de Valeur").Position = 1
    ActiveSheet.PivotTables("PivotTable3").PivotFields("Page1").Orientation = _
        xlHidden
    With ActiveSheet.PivotTables("PivotTable3").PivotFields("Colonne")
        .PivotItems("CLE").Visible = False
        .PivotItems("Clé comptable").Visible = False
        .PivotItems("CLIENT_TIERS").Visible = False
        '.PivotItems("Code Compte").Visible = False
        .PivotItems("Code Document").Visible = False
        ' *** modifié****
        .PivotItems("Code Devise").Visible = False
        .PivotItems("Code Etat Ligne").Visible = False
        .PivotItems("Code Societe").Visible = False
        .PivotItems("CREDIT_NOTE").Visible = False
        .PivotItems("Date Paiement").Visible = False
        .PivotItems("Date Piece").Visible = False
        .PivotItems("Date Saisie").Visible = False
        .PivotItems("Date Valeur").Visible = False
        .PivotItems("DATE_ECHEANCE").Visible = False
        .PivotItems("DATE_EMISSION_FACTURE").Visible = False
        .PivotItems("DATE_FACTURATION").Visible = False
        .PivotItems("DEVISE").Visible = False
        .PivotItems("ENCOURS").Visible = False
        .PivotItems("ENCOURS_EUR").Visible = False
        .PivotItems("ENTITE").Visible = False
        .PivotItems("Exercice").Visible = False
        .PivotItems("Montant CODA").Visible = False
        .PivotItems("Montant Billing").Visible = False
        .PivotItems("Libelle Ligne").Visible = False
        .PivotItems("LIBELLE_CLIENT").Visible = False
        .PivotItems("MONTANT_HT").Visible = False
        .PivotItems("MONTANT_TVA").Visible = False
        .PivotItems("PAIEMENT").Visible = False
        '.PivotItems("PCI").Visible = False
        .PivotItems("DOCUMENT_CODE").Visible = False
        '**** modifié****
        .PivotItems("PERIODE").Visible = False
        .PivotItems("Ref Externe1").Visible = False
        .PivotItems("Ref Externe2").Visible = False
        .PivotItems("Ref Externe3").Visible = False
        .PivotItems("Ref Externe4").Visible = False
        .PivotItems("Ref Externe5").Visible = False
    End With
    With ActiveSheet.PivotTables("PivotTable3").PivotFields("Colonne")
        .PivotItems("Ref Externe6").Visible = False
        .PivotItems("REF_FACTURE").Visible = False
        .PivotItems("SERVICE").Visible = False
        .PivotItems("Solde devise société").Visible = False
        .PivotItems("Utilisateur").Visible = False
        .PivotItems("VERIF").Visible = False
    End With
    With ActiveSheet.PivotTables("PivotTable3").PivotFields("Nombre de Valeur")
        .Caption = "Somme de Valeur"
        .Function = xlSum
    End With
    Range("H9").Select
    With ActiveSheet.PivotTables("PivotTable3")
        .ColumnGrand = False
        .RowGrand = False
    End With
    Range("J20").Select
End Sub

J'ai testé un truc comme ça en variant la syntaxe de Tab1=.... et Tab2=... mais ça ne fonctionne pas

Dim DerLig As Variant
Dim DerCol As Variant
Dim Tab1 As Integer
Dim Tab2 As Integer

DerLig = Range("A" & Rows.Count).End(xlUp).Row  'dernière ligne du fichier
DerCol = Cells(1, Columns.Count).End(xlToLeft).Column   'dernière colonne du fichier
Tab1 = Range("R1C1:R305C22") 'à tester puis modifier avec DerLig et DerCol
Tab2 = Range("R1C1:R109C25") 'à tester puis modifier avec DerLig et DerCol

      Sheets(4).Select
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlConsolidation, SourceData:= _
        Array(Array("'2'!Tab1", "Item1"), Array("'3'!Tab2", "Item2")), _
        Version:=xlPivotTableVersion14).CreatePivotTable TableDestination:= _
        "[Copie de MacroRapproBilling_Test5.xlsm]TCD!

Mais est-ce que ces 2 plages sources de données sont sous forme de tableaux structurés ? Si oui, quels sont les noms de tableaux ?

Car c'est ça qui permettra de rendre la taille source dynamique.

J'ai modifié votre code de manière à ce qu'il soit plus propre. Il ne sera pas forcément opérationnel dès maintenant mais on devrait s'approcher du résultat escompté. Il faudra seulement contrôler toutes les références aux feuilles (j'ai nommé d'après ce que j'ai compris) et adapter les noms de tableaux :

Sub tcddd()

Dim Cache1$, Cache2$, Dest$
Dim pcache as PivotCache
Dim tcd as PivotTable
Dim pItem as PivotItem

Cache1 = Sheets("2").range("Tab2").address(referencestyle:=xlR1C1, external:=true) '<<< adapter
Cache2 = Sheets("3").range("Tab3").address(referencestyle:=xlR1C1, external:=true) '<<<
Dest = Sheets("TCD").range("A1").address(referencestyle:=xlR1C1, external:=true) '<<<

Set pcache = Activeworkbook.PivotCaches.Create _
    SourceType:=xlConsolidation, _
    SourceData:=Array(Array(Cache1, "Item1"), Array(Cache2, "Item2")), _
    Version:=xlPivotTableVersion14

set tcd = pcache.CreatePivotTable _
    TableDestination:=Dest, _
    TableName:="PivotTable3", _
    DefaultVersion:=xlPivotTableVersion14

with tcd

    .DataPivotField.PivotItems"Nombre de Valeur").Position = 1
    .PivotFields("Page1").Orientation = xlHidden

    with .PivotFields("Colonne")
        for each pItem in .PivotItems
            .visible = False
        next pItem
    end with

    With .PivotFields("Nombre de Valeur")
        .Caption = "Somme de Valeur"
        .Function = xlSum
    End With

    .ColumnGrand = False
    .RowGrand = False

End With

End Sub

Cdlt,

Ouh la tu t'es pris la tête c'est super gentil merci bcp !!!

C'est vrai que il aurai fallu que je transmette la macro et les fichiers mais les données utilisées sont confidentielles.

je peux juste partager le code de la macro mais pas les deux fichiers qu'il faut utiliser dsl

La macro prend en compte d'abord un fichier Billing qui est en onglet 2 puis un fichier CODA qui est en onglet 3 ensuite elle synthétise les données des deux fichiers et me donne un TCD en onglet 4

Voici le code complet de la macro

Sub mainrappro()
Clear

Dim macro As Workbook
Set macro = ActiveWorkbook

'ouverture et import du premier fichier
If MsgBox("Selectionnez le fichier Billing", vbOKCancel, "Demande de confirmation") = vbOK Then
fichier = Application.GetOpenFilename
If fichier = False Then Exit Sub
Set current = Workbooks.Open(fichier, UpdateLinks:=False)
    Else
    Exit Sub
    End If
current.Worksheets(1).Activate
Cells.Select
Selection.Copy
macro.Worksheets(2).Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
current.Close False

'ouverture et import du second fichier
If MsgBox("Selectionnez le fichier CODA non-lettré", vbOKCancel, "Demande de confirmation") = vbOK Then
fichier = Application.GetOpenFilename
If fichier = False Then Exit Sub
Set current = Workbooks.Open(fichier, UpdateLinks:=False)
    Else
    Exit Sub
    End If
current.Worksheets(2).Activate
Cells.Select
Selection.Copy
macro.Worksheets(3).Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
current.Close False

'creation des verifs pour le fichier 1
macro.Worksheets(2).Activate
Impp = Cells(Application.Rows.Count, "A").End(xlUp).Row
Range("T1") = "CLE"
Range("T2").Formula = "=C2&F2"
Range("T2").AutoFill Destination:=Range("T2:T" & Impp), Type:=xlFillDefaul
Range("U1") = "Montant CODA"
'Range("U1") = "INDEX/EQUIV"
Range("U2").Select
ActiveCell.Formula = "=INDEX('3'!C[-15],MATCH('2'!C[-1],'3'!C[2],0))"
Range("U2").AutoFill Destination:=Range("U2:U" & Impp), Type:=xlFillDefaul
Range("V1") = "VERIF"
Range("V2").FormulaR1C1 = "=IFERROR(IF(RC[-10]=RC[-1], ""OK"",""KO""),""no data"")"
Range("V2").AutoFill Destination:=Range("V2:V" & Impp), Type:=xlFillDefaul

'creation des verifs pour le fichier 2
macro.Worksheets(3).Activate
Impp2 = Cells(Application.Rows.Count, "A").End(xlUp).Row
Range("W1") = "CLE"
Range("W2").Formula = "=B2&R2"
Range("W2").AutoFill Destination:=Range("W2:W" & Impp2), Type:=xlFillDefaul
'Range("X1") = "INDEX/EQUIV"
Range("X1") = "Montant Billing"
Range("X2").Select
ActiveCell.FormulaR1C1 = "=INDEX('2'!C[-12],MATCH('3'!C[-1],'2'!C[-4],0))"
Range("X2").AutoFill Destination:=Range("X2:X" & Impp2), Type:=xlFillDefaul
Range("Y1") = "VERIF"
Range("Y2").FormulaR1C1 = "=IFERROR(IF(RC[-1]=RC[-19], ""OK"",""KO""),""no data"")"
Range("Y2").AutoFill Destination:=Range("Y2:Y" & Impp2), Type:=xlFillDefaul

    Sheets(2).Select
    Columns("T:V").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Columns("A:V").EntireColumn.AutoFit
    Sheets(3).Select
    Columns("W:Y").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Columns("A:Y").EntireColumn.AutoFit

mef
tcddd
miseenforme

End Sub

Sub Clear()

    Sheets(2).Select
    Cells.Select
    Selection.ClearContents
    Sheets(3).Select
    Cells.Select
    Selection.ClearContents
    Sheets(4).Select
    Cells.Select
    Selection.ClearContents
    Sheets(1).Select
End Sub

Sub tcddd()

      Sheets(4).Select
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlConsolidation, SourceData:= _
        Array(Array("'2'!R1C1:R305C22", "Item1"), Array("'3'!R1C1:R109C25", "Item2")), _
        Version:=xlPivotTableVersion14).CreatePivotTable TableDestination:= _
        "[MacroRapproBilling_Test4.xlsm]TCD!R1C1", TableName:="PivotTable3", _
        DefaultVersion:=xlPivotTableVersion14
    ActiveSheet.PivotTables("PivotTable3").DataPivotField.PivotItems( _
        "Nombre de Valeur").Position = 1
    ActiveSheet.PivotTables("PivotTable3").PivotFields("Page1").Orientation = _
        xlHidden
    With ActiveSheet.PivotTables("PivotTable3").PivotFields("Colonne")
        .PivotItems("CLE").Visible = False
        .PivotItems("Clé comptable").Visible = False
        .PivotItems("CLIENT_TIERS").Visible = False
        '.PivotItems("Code Compte").Visible = False
        .PivotItems("Code Document").Visible = False
        ' *** modifié****
        .PivotItems("Code Devise").Visible = False
        .PivotItems("Code Etat Ligne").Visible = False
        .PivotItems("Code Societe").Visible = False
        .PivotItems("CREDIT_NOTE").Visible = False
        .PivotItems("Date Paiement").Visible = False
        .PivotItems("Date Piece").Visible = False
        .PivotItems("Date Saisie").Visible = False
        .PivotItems("Date Valeur").Visible = False
        .PivotItems("DATE_ECHEANCE").Visible = False
        .PivotItems("DATE_EMISSION_FACTURE").Visible = False
        .PivotItems("DATE_FACTURATION").Visible = False
        .PivotItems("DEVISE").Visible = False
        .PivotItems("ENCOURS").Visible = False
        .PivotItems("ENCOURS_EUR").Visible = False
        .PivotItems("ENTITE").Visible = False
        .PivotItems("Exercice").Visible = False
        .PivotItems("Montant CODA").Visible = False
        .PivotItems("Montant Billing").Visible = False
        .PivotItems("Libelle Ligne").Visible = False
        .PivotItems("LIBELLE_CLIENT").Visible = False
        .PivotItems("MONTANT_HT").Visible = False
        .PivotItems("MONTANT_TVA").Visible = False
        .PivotItems("PAIEMENT").Visible = False
        '.PivotItems("PCI").Visible = False
        .PivotItems("DOCUMENT_CODE").Visible = False
        '**** modifié****
        .PivotItems("PERIODE").Visible = False
        .PivotItems("Ref Externe1").Visible = False
        .PivotItems("Ref Externe2").Visible = False
        .PivotItems("Ref Externe3").Visible = False
        .PivotItems("Ref Externe4").Visible = False
        .PivotItems("Ref Externe5").Visible = False
    End With
    With ActiveSheet.PivotTables("PivotTable3").PivotFields("Colonne")
        .PivotItems("Ref Externe6").Visible = False
        .PivotItems("REF_FACTURE").Visible = False
        .PivotItems("SERVICE").Visible = False
        .PivotItems("Solde devise société").Visible = False
        .PivotItems("Utilisateur").Visible = False
        .PivotItems("VERIF").Visible = False
    End With
    With ActiveSheet.PivotTables("PivotTable3").PivotFields("Nombre de Valeur")
        .Caption = "Somme de Valeur"
        .Function = xlSum
    End With
    Range("H9").Select
    With ActiveSheet.PivotTables("PivotTable3")
        .ColumnGrand = False
        .RowGrand = False
    End With
    Range("J20").Select
End Sub
Sub mef()

    Sheets(2).Select
    Columns("C:C").Select
    Selection.Cut
    Columns("A:A").Select
    Selection.Insert Shift:=xlToRight
    Sheets("3").Select
    Columns("B:B").Select
    Selection.Cut
    Columns("A:A").Select
    Selection.Insert Shift:=xlToRight
End Sub

Sub miseenforme()

    Range("D3:D4").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent1
        .TintAndShade = 0.799981688894314
        .PatternTintAndShade = 0
    End With
    Range("D4").Select
    ActiveCell.FormulaR1C1 = ""
    Range("A4:D4").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    Range("D4").Select
    ActiveCell.FormulaR1C1 = "Ecart"
    Selection.Font.Bold = True
    derniereligne = Cells(Rows.Count, 1).End(xlUp).Row
    Range("D5").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-2]>RC[-1],RC[-2]-RC[-1],(RC[-2]-RC[-1])*-1)"
    Range("D5").Select
    Selection.AutoFill Destination:=Range("D5:D" & derniereligne), Type:=xlFillDefault
    ActiveWindow.DisplayGridlines = False

    Range("B2").Select
    ActiveCell.FormulaR1C1 = "Billing"
    Selection.Font.Bold = True
    Range("C2").Select
    ActiveCell.FormulaR1C1 = "CODA non lettré"
    Selection.Font.Bold = True
End Sub

Je vais regarder le code que tu m'a partager et essayer de le comprendre et de l'adapter en tt cas merci de ton temps !

Oui les deux fichiers sources sont des tableaux structurés

Oulaaaa, en tout cas, je ne vais pas regarder le tien parce que ça fait beaucoup .

Dans ce cas, ça change les choses puisque j'ai considéré que tout était sur le même fichier.

Il faut adapter en ajouter le classeur, ex :

Cache1 = Workbooks("Billing.xls").Sheets("2")....... 'tous ces noms sont à adapter éventuellement

Et faire de même pour les autres.

D'accord je vais essayé comme ça merci pour ton aide !!!

Rechercher des sujets similaires à "range definir"