XL 2016 Affectation de données dans certaines cellule selon des conditions.

manu49300

XLDnaute Nouveau
Bonjour,

Je ne trouve pas de solution avec les fonctions "=Si.conditions" ou bien la fonction "RechercheV" car trop de critères.
Je souhaite affecter des données dans un tableau selon des conditions prédéfinies en amont. Je vous joins un classeur pour exemple. Merci.
 

Pièces jointes

  • Classeur2.xlsx
    13.9 KB · Affichages: 7
Solution
Re,
Il eût été pertinent de demander ça dès le départ, les approches sont très différentes.:)
En PJ un essai avec :
VB:
Sub Compte()
    Dim DC%, DL%, PL%, Plage As Range
    DC = Cells(2, Columns.Count).End(xlToLeft).Column   ' Dernière colonne
    DL = Range("A65500").End(xlUp).Row                  ' Dernière ligne
    PL = 14                                             ' Première ligne à traiter, à modifier suivant tableau
    Application.ScreenUpdating = False
    Set Plage = Range(Cells(PL, "C"), Cells(DL, DC))
    Plage.FormulaR1C1 = "=INDEX(R3C:R8C,MATCH(RC1,R3C2:R8C2,1))"    ' Insère formules : =INDEX(C$3:C$8;EQUIV($A14;$B$3:$B$8;1)), Formule à modifier si tableau des limites à varier en longueur.
    Plage.Value = Plage.Value...

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Il eût été pertinent de demander ça dès le départ, les approches sont très différentes.:)
En PJ un essai avec :
VB:
Sub Compte()
    Dim DC%, DL%, PL%, Plage As Range
    DC = Cells(2, Columns.Count).End(xlToLeft).Column   ' Dernière colonne
    DL = Range("A65500").End(xlUp).Row                  ' Dernière ligne
    PL = 14                                             ' Première ligne à traiter, à modifier suivant tableau
    Application.ScreenUpdating = False
    Set Plage = Range(Cells(PL, "C"), Cells(DL, DC))
    Plage.FormulaR1C1 = "=INDEX(R3C:R8C,MATCH(RC1,R3C2:R8C2,1))"    ' Insère formules : =INDEX(C$3:C$8;EQUIV($A14;$B$3:$B$8;1)), Formule à modifier si tableau des limites à varier en longueur.
    Plage.Value = Plage.Value                                 ' Copier coller valeur
    Application.ScreenUpdating = True
End Sub
A noter que :
1- La liste des limites est figées comme l'exemples à 6 limites.
2- Le tableau à traiter commence en ligne 14.
Sinon adapter la macro.
 

Pièces jointes

  • Classeur2 (9) (1).xlsm
    23.8 KB · Affichages: 4

manu49300

XLDnaute Nouveau
Re,
Il eût été pertinent de demander ça dès le départ, les approches sont très différentes.:)
En PJ un essai avec :
VB:
Sub Compte()
    Dim DC%, DL%, PL%, Plage As Range
    DC = Cells(2, Columns.Count).End(xlToLeft).Column   ' Dernière colonne
    DL = Range("A65500").End(xlUp).Row                  ' Dernière ligne
    PL = 14                                             ' Première ligne à traiter, à modifier suivant tableau
    Application.ScreenUpdating = False
    Set Plage = Range(Cells(PL, "C"), Cells(DL, DC))
    Plage.FormulaR1C1 = "=INDEX(R3C:R8C,MATCH(RC1,R3C2:R8C2,1))"    ' Insère formules : =INDEX(C$3:C$8;EQUIV($A14;$B$3:$B$8;1)), Formule à modifier si tableau des limites à varier en longueur.
    Plage.Value = Plage.Value                                 ' Copier coller valeur
    Application.ScreenUpdating = True
End Sub
A noter que :
1- La liste des limites est figées comme l'exemples à 6 limites.
2- Le tableau à traiter commence en ligne 14.
Sinon adapter la macro.
Je l'ai adapté à mon tableau. Ça a l'air de fonctionner. Merci beaucoup pour votre aide.
 

Discussions similaires

Réponses
16
Affichages
456

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa