Référence INDIRECT Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Avatar du membre
vbMsgBoxHelpButton
Membre fidèle
Membre fidèle
Messages : 290
Appréciations reçues : 15
Inscrit le : 7 décembre 2017
Version d'Excel : 2007 FR

Message par vbMsgBoxHelpButton » 17 décembre 2017, 00:26

Après vous avez au moins la structure de la formule, ne comprenant pas forcément le déroulement du code vous allez pouvoir l'adapter à votre besoin, non ?
vbMBHB
vbMsgBoxHelpButton ou bien 16384 pour les intimes :lole:
Je pars pour un très long voyage, donc aujourd'hui le 08/02/2018, je vous dis "au revoir" (°v°)°
Avatar du membre
vbMsgBoxHelpButton
Membre fidèle
Membre fidèle
Messages : 290
Appréciations reçues : 15
Inscrit le : 7 décembre 2017
Version d'Excel : 2007 FR

Message par vbMsgBoxHelpButton » 17 décembre 2017, 00:30

OK, essayez ceci :
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=INDIRECT(" & ActiveCell.Offset(-1, -2).Range("A1").Address & ")"
vbMBHB
vbMsgBoxHelpButton ou bien 16384 pour les intimes :lole:
Je pars pour un très long voyage, donc aujourd'hui le 08/02/2018, je vous dis "au revoir" (°v°)°
Avatar du membre
vbMsgBoxHelpButton
Membre fidèle
Membre fidèle
Messages : 290
Appréciations reçues : 15
Inscrit le : 7 décembre 2017
Version d'Excel : 2007 FR

Message par vbMsgBoxHelpButton » 17 décembre 2017, 00:32

Et puis un truc "en plus" pour être plus propre : mettez ceci Application.ScreenUpdating = False au début de votre code... Et voyez la différence !
vbMBHB
1 membre du forum aime ce message.
vbMsgBoxHelpButton ou bien 16384 pour les intimes :lole:
Je pars pour un très long voyage, donc aujourd'hui le 08/02/2018, je vous dis "au revoir" (°v°)°
A
AM79
Nouveau venu
Nouveau venu
Messages : 8
Inscrit le : 16 décembre 2017
Version d'Excel : 2016

Message par AM79 » 17 décembre 2017, 00:36

Oh GÉNIAL !!!
C'est exactement ce que je voulais !! 10000000...mercis !!!
Je vais essayer de comprendre le comment du pourquoi, pour apprendre.
Vous n'imaginez pas l'épine que vous me retirez du pied !!! :o
:btres:
Avatar du membre
vbMsgBoxHelpButton
Membre fidèle
Membre fidèle
Messages : 290
Appréciations reçues : 15
Inscrit le : 7 décembre 2017
Version d'Excel : 2007 FR

Message par vbMsgBoxHelpButton » 17 décembre 2017, 00:57

le pourquoi du comment ? Si vous écrivez INDIRECT(A10) alors vous écrivez A10 en "dur" et il sera répété, et c'était le cas ! il faut donc "sortir" le A10 de l'écriture en dur pour le passer "en variable" sous VBA c'est pourquoi : INDIRECT( " & variable & " ), il reste de plus qu'à comprendre le code pour se rendre compte que le A10 était en fait la cellule active
C8 pour votre premier lancement de la macro qui avec ActiveCell.Offset(1, 0).Range("A1").Select devient
C9 qui avec ActiveCell.Offset(0, -2).Range("A1").Select devient
A9 qui avec ActiveCell.Offset(1, 2).Range("A1").Select devient
C10 qui avec ActiveCell.Offset(0, 11).Range("A1").Select devient
N10 qui avec ActiveCell.Offset(0, -13).Range("A1").Select devient
A10 qui avec ActiveCell.Offset(1, 2).Range("A1").Select devient
C11 qui permet de dire que A10 par rapport à C11 est en fait C11 -1 ligne et -2 colonne avec ceci ActiveCell.Offset(-1, -2).Range("A1").Address, on a donc bien A10 recherché !
Du coup le A10 du Indirect devient variable en fonction de la première cellule sélectionnée en colonne C !
Voilà donc le pourquoi du comment !
vbMBHB
vbMsgBoxHelpButton ou bien 16384 pour les intimes :lole:
Je pars pour un très long voyage, donc aujourd'hui le 08/02/2018, je vous dis "au revoir" (°v°)°
A
AM79
Nouveau venu
Nouveau venu
Messages : 8
Inscrit le : 16 décembre 2017
Version d'Excel : 2016

Message par AM79 » 17 décembre 2017, 01:19

C'est super 😊 c'est ce que je n'arrivais pas à "traduire".
Merci beaucoup.
Avatar du membre
vbMsgBoxHelpButton
Membre fidèle
Membre fidèle
Messages : 290
Appréciations reçues : 15
Inscrit le : 7 décembre 2017
Version d'Excel : 2007 FR

Message par vbMsgBoxHelpButton » 17 décembre 2017, 11:22

Merci
vbMBHB
Nota : je scrolle ici aussi... :P
vbMsgBoxHelpButton ou bien 16384 pour les intimes :lole:
Je pars pour un très long voyage, donc aujourd'hui le 08/02/2018, je vous dis "au revoir" (°v°)°
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message