Modification macro manuelle a rendre generique

  • Initiateur de la discussion Initiateur de la discussion Eclipto
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Eclipto

XLDnaute Junior
PHP:
Bonjour,

Tout d'abord au vu de me ancien sujet, je tiens a dire que le fichier joint et tronqué car faisant 4Mo, l'onglet etract est identique au point de vu colonne mais tronqué au point de vu ligne (donc prevoir max 2000 lignes) l'onglet "liaison"au niveaux des lignes ca ne va pas plus pas par contre pour les colonnes les formules s'etirent jusqu'ai bout de la feuille.

Mon probleme maintenant, je vais devoir ajouter d'autres onglets comme comme extract et liaison n'ayant pas le meme nom mais etant associer ex vichi & vichi2. dans mon fichier il y a la macro "infos"avec la mise en place des formule dans l'onglet liaision. le probleme c'est que m'y connaissant pas suffisament en VBA j'ai fait un engregistrement et les formule sont associé a l'onglet extract. J'aimerais que la macro utilise les formules en place mais que je puis les utilisé depuis n'importe quel onglet du moment qu'il y est un onglet precedent comme extract
ex les fomules sont pour l'onglet vichi2 et vont cherchee les infos dans vichi ou regal2 va chercher les infos dans regal.

PS les collones A, B, C doit etre identiques pour chaque nouvel onglet

J'espere avoir etait assez clair
 

Pièces jointes

Dernière édition:
Re : Modification macro manuelle a rendre generique

une erreur c'est introduite dans cette formule

=SOMMEPROD((extract!$M$2:$M$1500=$A3)*(extract!$G$2:$G$1500=C$1)*((($B3="S")*extract!$AD$2:$AD$1500)+(($B3="E")*extract!$V$2:$V$1500)))

C'est
=SOMMEPROD((extract!$M$2:$M$1500=$A4)*(extract!$G$2:$G$1500=C$1)*((($B4="S")*extract!$AD$2:$AD$1500)+(($B4="E")*extract!$V$2:$V$1500)))

il doit faloir modifie la macro et je ne c'est pas faire
 
Dernière édition:
Re : Modification macro manuelle a rendre generique

je ferais un copier/coller

Code:
Sub Infos()
'
' Infos Macro
'

'
    ActiveCell.FormulaR1C1 = _
        "=IF(ISERROR(INDEX(extract!R1C6:R1500C7,MATCH(SMALL(extract!R1C6:R1500C6,COLUMN()-2),extract!R1C6:R1500C6,0),2)),"""",INDEX(extract!R1C6:R1500C7,MATCH(SMALL(extract!R1C6:R1500C6,COLUMN()-2),extract!R1C6:R1500C6,0),2))"
    Range("C1").Select
    Selection.AutoFill Destination:=Range("C1:IV1"), Type:=xlFillDefault
    Range("C1:IV1").Select
  
    Rows("1:1").EntireRow.AutoFit
    Range("C2").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(ISERROR(LOOKUP(R[-1]C,extract!RC7:R[1500]C7,extract!RC14:R[1500]C14)),"""",LOOKUP(R[-1]C,extract!RC7:R[1498]C7,extract!RC14:R[1498]C14))"
    Range("C2").Select
    Selection.AutoFill Destination:=Range("C2:IV2"), Type:=xlFillDefault
    Range("C2:IV2").Select

    Range("C3").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(ISERROR(LOOKUP(R[-2]C,extract!R[-1]C7:R[1497]C7,extract!R[-1]C9:R[1497]C9)),"""",LOOKUP(R[-2]C,extract!R[-1]C7:R[1497]C7,extract!R[-1]C9:R[1497]C9))"
    Range("C3").Select
    Selection.AutoFill Destination:=Range("C3:IV3"), Type:=xlFillDefault
    Range("C3:IV3").Select
 
    Range("C4").Select
    ActiveCell.FormulaR1C1 = _
        "=SUMPRODUCT((extract!R2C13:R1500C13=R[-1]C1)*(extract!R2C7:R1500C7=R1C)*(((R[-1]C2=""S"")*extract!R2C30:R1500C30)+((R[-1]C2=""E"")*extract!R2C22:R1500C22)))"
    Range("C4").Select
    Selection.AutoFill Destination:=Range("C4:C109"), Type:=xlFillDefault
    Range("C4:C109").Select
    Selection.AutoFill Destination:=Range("C4:IV109"), Type:=xlFillDefault
    Range("C4:IV109").Select
 
Dernière édition:
Re : Modification macro manuelle a rendre generique

Re,
Essaies
Code:
f = Sheets(ActiveSheet.Index - 1).Name
ActiveCell.FormulaR1C1 = _
        "=IF(ISERROR(INDEX(" & f & "!R1C6:R1500C7,MATCH(SMALL(" & f & "!R1C6:R1500C6,COLUMN()-2)," & f & "!R1C6:R1500C6,0),2)),"""",INDEX(" & f & "!R1C6:R1500C7,MATCH(SMALL(" & f & "!R1C6:R1500C6,COLUMN()-2)," & f & "!R1C6:R1500C6,0),2))"
'....
Je te laisse adapter...
A+
kjin
 
Re : Modification macro manuelle a rendre generique

Bonsoir

Une autre syntaxe pour le même résultat que celui que kjin

VB:
Sub a()
Dim f$
f = ActiveSheet.Previous.Name
ActiveCell.FormulaR1C1 = _
        "=IF(ISERROR(INDEX(" & f & "!R1C6:R1500C7,MATCH(SMALL(" & f & "!R1C6:R1500C6,COLUMN()-2)," & f & "!R1C6:R1500C6,0),2)),"""",INDEX(" & f & "!R1C6:R1500C7,MATCH(SMALL(" & f & "!R1C6:R1500C6,COLUMN()-2)," & f & "!R1C6:R1500C6,0),2))"
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour