VBA Formule dépendante d'onglets variables

Fermé
marccinna Messages postés 2 Date d'inscription mardi 8 mai 2012 Statut Membre Dernière intervention 9 mai 2012 - 8 mai 2012 à 16:42
marccinna Messages postés 2 Date d'inscription mardi 8 mai 2012 Statut Membre Dernière intervention 9 mai 2012 - 9 mai 2012 à 15:45
Bonjour à tous,

Je suis amené à travailler sur une macro excel. Cela fait très longtemps que je n'en avais pas fait une ! Cependant, j'ai quelques petits problèmes tout bête à règler.

Au cas ou j'aurais plusieurs questions, j'explique ci-dessous tout le processus.

Idée du fichier : C'est un fichier de "consolidation d'informations" relatives à plusieurs sociétés, afin de pouvoir les comparer entre elles. Ainsi, j'ai déjà un fichier par société comportant 1 onglet rempli. Chaque société remplisse donc le même tableau dans 1 fichier.

Le fichier de consolidation est pour le moment doté de 2 onglets : 1 onglet outil et 1 onglet consolidation (même tableau que celui rempli par les sociétés). Prenons un exemple où j'aurais que 20 sociétés au maximum et parfois même moins.

L'onglet "outil" me permet de dissocier les étapes de création et d'ajouter des variables selon les sociétés que je souhaite comparer entre elles.
1ière étape : Une cellule retrace le chemin du fichier selon le numéro de la société en B2-->B21. Le numéro de la société est donc une variable inscrite dans la cellule C2-->C21 que je rentre à la main. Donc il y a 20 boutons qui ont chacun une macro (la même quasiment). Chaque bouton me permettent d'aller chercher le fichier de la société que je souhaite rentrer dans le comparable, copier l'onglet de leur fichier indépendant après l'onglet "consolidation" et renommer l'onglet à l'aide de la cellule C2-->C21

Quand cette copie des onglets est faite pour toutes les sociétés choisies dans le comparable. J'arrive à l'étape 2, le bouton 21 qui me permet de lancer le calcul de consolidation, dans l'onglet "consolidation". J'en suis donc à cette étape.

Cette étape doit inscrire dans la cellule D10 de l'onglet "consolidation", la somme des cellules D10 des onglets copiés des sociétés, en sachant que le nom de ces onglets sont tous répertoriés dans l'onglet "outil" cellule C2-->C21 puisque mes permières macro ont changé les noms d'onglets par rapport à ces cellules. Aujourd'hui, je bloque à cause des noms des onglets qui sont variables :

Private Sub CommandButton21_Click()
Sheets ("outil") .Select
Range("D10") .Select
ActiveCell.formulaR10C4 = _
"=If(isempty(' " & Sheets("outil") & " ' ! R[2]C[3]);0;INDIRECT(' " & Sheets ("outil") ! R[2]C[3] & " ' ! R[10]C[4]))" + REPRODUCTION DU CALCUL POUR LES AUTRES ONGLETS
End Sub

Réponse = erreur d'execution '438' Propriété ou méthode non gérée par cet objet

La première partie du calcul correspond à l'existance ou non d'un onglet, puisque la creation de l'onglet dépend de l'existance d'une valeur dans cette cellule C2. S'il n'y a pas d'onglet, ça donne 0, s'il y a une valeur, je lui demande d'aller chercher la valeur de la cellule D10 de l'onglet correspondant (le nom se trouvant la encore dans cette cellule c2).

Ou se trouve mon erreur ? On peut m'expliquer ?

Je note que j'ai un petit souci pour savoir ce qui fait partie du paramètre excel (cellule C10) et ce qui fait partie du paramètre VBA (cellule R[10]C[4]). Est ce un problème ? Mon excel est en version française, est ce que ça change quelque-chose pour le nom des formules, par exemple isempty() et estvide() ?

Je vous remercie par avance de votre aide !

A voir également:

1 réponse

marccinna Messages postés 2 Date d'inscription mardi 8 mai 2012 Statut Membre Dernière intervention 9 mai 2012
9 mai 2012 à 15:45
Ai-je été trop long ou pas assez clair dans ma demande ?

Encore merci d'avance pour toute réponse que vous pourrez m'apporter
0