XL 2016 macro à appliquer à la ligne suivante

tomakayama

XLDnaute Nouveau
Bonjour à tous;

je dois faire une recherche =GRANDE.VALEUR( dans un tableau croisé dynamique

je dois cliquer sur la case du tableau croisé dynamique pour effectuer la recherche dans le tableau qui est donc créé

ensuite je reporte le resultat trouvé dans la case correspondante

j'aimerais appliquer cette macro à la ligne suivante ..
Avez vous une idée du code à entrer ?

J'aimerais appliquer ma macro à la ligne suivante

Sub Macroinfiniti()
'
' Macroinfiniti Macro
'
'
Range("B48").Select
Selection.ShowDetail = True
Range("J11").Select
ActiveCell.FormulaR1C1 = "=LARGE(C[-1],1)"
Range("J11").Select
Selection.Copy
Sheets("calcul mini et maxi").Select
Range("E48").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Range("B49").Select
Selection.ShowDetail = True
Range("J11").Select
ActiveCell.FormulaR1C1 = "=LARGE(C[-1],1)"
Range("J11").Select
Selection.Copy
Sheets("calcul mini et maxi").Select
Range("E49").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Range("B50").Select
Selection.ShowDetail = True
Range("J11").Select
ActiveCell.FormulaR1C1 = "=LARGE(C[-1],1)"
Range("J11").Select
Selection.Copy
Sheets("calcul mini et maxi").Select
Range("E50").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

et puis ainsi de suite
Merci beaucoup
 

Pièces jointes

  • 1560848953564.png
    1560848953564.png
    23.6 KB · Affichages: 3

tomakayama

XLDnaute Nouveau
pour apporter un peu plus de precision:

je dois récupérer le nombre le plus élevé (=grandevaleur) dans un tableau qui concerne qu'une partie du tableau croisé dynamique;

Jai une multitude de références (plus de 6000) et dans mon croisé dynamique toutes les données sont classées; je prends le total dans le croisées dynamique d'une référence qui est donc classée; quand je clique sur ce total cela m'ouvre une nouvelle fenêtre; et a ce moment j'utilise la fonction grande valeur; pour terminer je récupére cette valeur et je l'indique dans le tableau où se trouve le croisée dynamique; par la suite a cette valeur je lui impute un calcul.

je sais faire le macro(mon tout premier) pour une ref mais pas pour toutes les autres :(

en espérant que cela puisse aiguiller. je continu a observer les autres Topics ressembler à ma demande mais javou que cela reste assez abstraite

bonne journée :)
 

tomakayama

XLDnaute Nouveau
Sub Macroinfiniti()
'
' Macroinfiniti Macro
'
'

Range("B4").Select
Selection.ShowDetail = True
Range("J11").Select
ActiveCell.FormulaR1C1 = "=LARGE(C[-1],1)"
Range("J11").Select
Selection.Copy
Sheets("mini").Select
Range("E4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

j'aimerais que ce code puisse passer à la ligne du dessous et faire la même suite d'opération
 

Ikito

XLDnaute Occasionnel
Bonjour tomakyama,

Je ne suis pas certain d'avoir compris l'entièreté de ta demande mais le code suivant ne devrait-il pas fonctionner ?

VB:
For i = [DebutDeTaPlage] To [FinDeTaPlage]
Range("B" & i).Select
Selection.ShowDetail = True
Range("J11").Select
ActiveCell.FormulaR1C1 = "=LARGE(C[-1],1)"
Range("J11").Select
Selection.Copy
Sheets("calcul mini et maxi").Select
Range("E" & i).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Next

Avec une légère modification et de l'optimisation (Les Select prennent beaucoup plus de temps et ne servent à rien), on obtient :

VB:
For i = [DebutDeTaPlage] To [FinDeTaPlage]
Set ws_calcul = Sheets("calcul mini et maxi")
Range("B" & i).ShowDetail = True
Range("J11").FormulaR1C1 = "=LARGE(C[-1],1)"
Range("J11").Copy
ws_calcul.Range("E" & i).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks :=False, Transpose:=False
Next

De plus, si les Range ne contiennent qu'une cellule, pourquoi ne pas utiliser Cells ?

VB:
For i = [DebutDeTaPlage] To [FinDeTaPlage]
Set ws_calcul = Sheets("calcul mini et maxi")
Cells(i,2).ShowDetail = True 'Pas certain de l'intérêt de cette ligne
Cells(11,10).FormulaR1C1 = "=LARGE(C[-1],1)"
val = Cells(11,10).Value
ws_calcul.Cells(i,5) = val
Next
 
Dernière édition:

tomakayama

XLDnaute Nouveau
Mr Ikito, vous m'avez aidé à acquérir et comprendre le vocabulaire nécessaire pour ce type d'opération.
je vous remercie beaucoup.
j'ai utilisé la première formule qui a fait planter mon PC suite au processeur qui est trop faible mais cela marche quand même et j'ai pu avoir mes réponses.
 

Discussions similaires

Réponses
2
Affichages
116

Statistiques des forums

Discussions
312 195
Messages
2 086 078
Membres
103 112
dernier inscrit
cuq-laet