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

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

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
2
Affichages
231
Réponses
17
Affichages
738

Membres actuellement en ligne

Statistiques des forums

Discussions
315 283
Messages
2 118 013
Membres
113 408
dernier inscrit
lausablk