Généreren automatique une formule MIN sur une plage dynamique.
1 réponse
Rayzo
Bonjour,
Je rencontre un problème.
Mon programme créé des onglets afin de récupérer des données puis les colles dans cet onglet. En fonction des données les plages changent.
Je n'arrive pas a appliquer une formule MIN sur la ligne. Je ne peux pas cité une plage fixe car lors de la création de mon onglet puis le collage de mes données celle ci peuvent changer.
En gros au lieu d'avoir MIN("e;e;BC6"e;e;:"e;e;CQ6"e;e;) j'aiemrais avoir une ou deux variable qui me gere la plage en automatique.
3 partie sont présente:
1- les données récupérer dans l'exemple de la colonne 1 a 53
2-Mes formules générés de 55 a 95
3-la colonne mini en 97 que je souhaite en dynamique;
Exemples:
Pour le min de la ligne 6 j'aimerais =MIN(BC6;CQ6) mais avec 2 variable créé qui me retourne cette plage. =Min(cell1:cell2)
Pour la ligne suivante =MIN(BC7;CQ7) idem pour la plage.
=Min(cell1:cell2)
Etant dans un contexte de travail pro je ne peux malheureusement pas vous fournir le fichier source avec toute les macro créés.
En ayant réfléhis, je pense à:
Range(Cells(6, NbcolMG1 + 1), Cells(6, NbcolMG)).Select
Cela me sélectionné bien la plage met comment incrémenter pour qu'il passe a la ligne suivante en modifiant la plage aussi. boucle for? donc 2 boucle? ( incrémenter ma plage)
Je ne sais pas si je me suis bien fais comprendre...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichD
Bonjour,
Essaie ceci :
'------------------------------------------------------------------------- Sub test() Dim Rg As Range, Rg1 As Range, DerLig As Long Dim A As Long, B As Long
With Worksheets("Feuil1") 'Nom feuille à adapter 'Trouve la dernière cellule dans chacune des colonnes A = .Range("BC" & .Rows.Count).End(xlUp).Row B = .Range("CQ" & .Rows.Count).End(xlUp).Row DerLig = Application.Max(A, B)
'J'ai supposé que la ligne débutait en 7, tu peux choisir 'le numéro de la ligne de ton choix Set Rg = .Range("BC7:BC" & DerLig) Set Rg1 = .Range("CQ7:CQ" & DerLig)
'Dans la colonne A, adapte la lettre de la 'colonne qui te convient With .Range("A7:A" & DerLig) 'La formule s'inscrit dans chacune des 'cellules de cette colonne .Formula = "=Min(" & Rg(1).Address(0, 0) & _ ":" & Rg1(1).Address(0, 0) & ")" End With End With End Sub '-------------------------------------------------------------------------
Bonjour,
Essaie ceci :
'-------------------------------------------------------------------------
Sub test()
Dim Rg As Range, Rg1 As Range, DerLig As Long
Dim A As Long, B As Long
With Worksheets("Feuil1") 'Nom feuille à adapter
'Trouve la dernière cellule dans chacune des colonnes
A = .Range("BC" & .Rows.Count).End(xlUp).Row
B = .Range("CQ" & .Rows.Count).End(xlUp).Row
DerLig = Application.Max(A, B)
'J'ai supposé que la ligne débutait en 7, tu peux choisir
'le numéro de la ligne de ton choix
Set Rg = .Range("BC7:BC" & DerLig)
Set Rg1 = .Range("CQ7:CQ" & DerLig)
'Dans la colonne A, adapte la lettre de la
'colonne qui te convient
With .Range("A7:A" & DerLig)
'La formule s'inscrit dans chacune des
'cellules de cette colonne
.Formula = "=Min(" & Rg(1).Address(0, 0) & _
":" & Rg1(1).Address(0, 0) & ")"
End With
End With
End Sub
'-------------------------------------------------------------------------
'------------------------------------------------------------------------- Sub test() Dim Rg As Range, Rg1 As Range, DerLig As Long Dim A As Long, B As Long
With Worksheets("Feuil1") 'Nom feuille à adapter 'Trouve la dernière cellule dans chacune des colonnes A = .Range("BC" & .Rows.Count).End(xlUp).Row B = .Range("CQ" & .Rows.Count).End(xlUp).Row DerLig = Application.Max(A, B)
'J'ai supposé que la ligne débutait en 7, tu peux choisir 'le numéro de la ligne de ton choix Set Rg = .Range("BC7:BC" & DerLig) Set Rg1 = .Range("CQ7:CQ" & DerLig)
'Dans la colonne A, adapte la lettre de la 'colonne qui te convient With .Range("A7:A" & DerLig) 'La formule s'inscrit dans chacune des 'cellules de cette colonne .Formula = "=Min(" & Rg(1).Address(0, 0) & _ ":" & Rg1(1).Address(0, 0) & ")" End With End With End Sub '-------------------------------------------------------------------------