Copie de formules

caly.mpl Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   -
bonjour

Dans une cellule de la feuille nommée 02 (pour février) j'ai cette formule : = 'feuil 01'!$A$2 (la feuille 01 comportant des données à transférer sur la feuille 02)
Si je copie cette formule dans une feuille 04 reprenant les données de la feuille 03
, elle va garder rester la même et donc me transférer les données de la feuille 01.

comment changer automatiquement la référence de la feuille

passer de ='feuill01'!$A$2 à 'feuill03'!$A$2 pour 1 cellule c'est pas compliqué mais pour des dizaines c 'est fastidieux surtout que j'ai 12 feuilles

Merci
A voir également:

7 réponses

ozone_ Messages postés 1518 Date d'inscription   Statut Membre Dernière intervention   478
 
Salut,

Peut on avoir un exemple (avec des données fictives) de ton classeur ?
Joint le sur : https://www.cjoint.com/

Merci.

1f u c4n r34d th1s u r34lly n33d t0 g37 l41d !
0
caly.mpl Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour votre réponse
Voici le lien du fichier

https://www.cjoint.com/?0DsogrlY4YE
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Bonjour,

l'idée pour la cellule A2 feuille 1 serait
=INDIRECT(STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)&"!A2")

si cette formule doit être incrémentée depuis la deuxième ligne, la formule serait
=INDIRECT(STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)&"!A"&LIGNE())

et copiée sur la feuille 2 le numéro de l'onglet s'actualisera
pour avoir une formule adaptée, commence par répondre à Ozone et poste un exemple de fichier
0
caly.mpl Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
ouahou !
Je vais etudier cette réponse mais il va me falloir du temps car je me suis toujours débrouillée seule pour en arriver à ce que je sais faire avec excel et là c'est un cran plus haut
Voici le lien que j'ai envoyé à ozone
https://www.cjoint.com/?0DsogrlY4YE
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

A mon tour OUAHOU! ma formule ne peut s'appliquer parce que changement de nom d'onglet PRESENCE avec mois et pas de progression linéaire exemple en E4 on a ='PRESENCE 01'!$C$3 et en E5 on passe en H ='PRESENCE 01'!$H$3.

Enfin cela n'est pas insurmontable mais bonsoir le formule. Enfin de mon coté je regarde ce qui peut être fait
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour
excusez l'incrute (bonjour Mike, ca va ?)
Il existe une fonction personnalisée crée par jacques boisgontier pour donner le nom de l'onglet précédent
Dans un module

Function OngletPrecedent()
OngletPrecedent = Sheets(Application.Caller.Parent.Name).Previous.Name
End Function


et la formule devient
=INDIRECT(ongletprecedent()&"!A2")
Le site de jacques
http://boisgontierjacques.free.fr/
site incontournable à mettre dans ses favoris

Michel
0
ozone_ Messages postés 1518 Date d'inscription   Statut Membre Dernière intervention   478
 
Ou aussi :

Function OngletPrecedent()
OngletPrecedent = Sheets(Sheets.Count - 1).Name
End Function
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314 > ozone_ Messages postés 1518 Date d'inscription   Statut Membre Dernière intervention  
 
ca te donne l'avant dernier onglet ?....
0
ozone_ Messages postés 1518 Date d'inscription   Statut Membre Dernière intervention   478
 
Ah ouais, là c'est l'onglet précédent de la feuille sélectionné !
C'est stylé, à garder sous le coude =o
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314 > ozone_ Messages postés 1518 Date d'inscription   Statut Membre Dernière intervention  
 
Que veux tu dire par
Ah ouais, là c'est l'onglet précédent de la feuille sélectionné !
C'est stylé, à garder sous le coude =o
?
0
ozone_ Messages postés 1518 Date d'inscription   Statut Membre Dernière intervention   478
 
Moi ma formule donne l'avant dernier onglet du classeur,
ici, ça donne l'avant dernier onglet par rapport à la feuille où l'on est.

Si j'ai bien saisie le truc
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,
Salut Michel, oui ça va merci j'espère pour toi également.
je viens juste de trouver ce merveilleux code qui fonctionne parfaitement et essaye de l'adapter au fichier de Ozone
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

vu la complexité de ton fichier ou on passe de C3 à H3 puis à M3 etc
il est difficile de créer une incrémentation alors je te propose de créer dans le module du Visual Basic (Alt et touche de fonction F11)
Insertion/Module
coller ce code

Function OngletPrec(cell As Range) As Variant
Application.Volatile
Var = Sheets(ActiveSheet.Index - 1).Range(cell.Address)
OngletPrec = Sheets(ActiveSheet.Index - 1).Range(cell.Address)
End Function

revenir sur ta feuille Janvier et clic en E4 et onglet Formules/module Bibliothèque de Fonctions/Inserer une fonction
Pointer sur OngletPrec et saisir dans cell C3

ensuite dans chaque cellule copier cette formule que tu as en E4 =OngletPrec(C3) reste plus qu'a modifier l'adresse dans chaque formule collée, exemple en E5 modifier =OngletPrec(C3) comme ceci =OngletPrec(H3)
une fois l'onglet JANVIER terminé efface l'onglet FEVRIER et faire un copier de la feuille JANVIER et Coller sur l'onglet FEVRIER, puis sur mars etc ... intercaler les feuilles PRESENCE

revenir dans le visual Basic, double clic sur Thiswokbook et coller ce code

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Calculate
End Sub
0
caly.mpl
 
Salut

Petite rectification le fichier est à moi caly.mpl et pas à ozone. Il risque de ne pas comprendre si tu lui réponds.
Bon à ce ue je vois vous etes 10 0000000000000000000 fois plus calé que moi sur excel.
Je vais essayer de me dépatouiller avec tout ça à faire mais je crois que cela va me prendre plus de temps que de changer le 01 de ma formule en 02, pu 03 puis ................................
C'est pas grave j'aurai au moins appris quelque chose de plus sur excel
Quand vous metttez : colle ce code, il faut coller tout le praragraphe que vous avez notez en dessous?

Merci
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Pourquoi ne pas employer la fonction de JB ???
0
caly.mpl > michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention  
 
Bonjour
Vous n'avez peut etre pas vu mon fichier
Complexe d'après Mike
J'ai essayé votre formule cela ne fonctionne pas
Et celle de Mike non plus *Je pense que cela vient du fait que je n'ai pas la fonction "ongletprec"
Mike me fait faire une copie d' un code dans le Visual Basic mais je pense qu'il a oublié de me dire ce qu'il fallait en faire une fois le code copié (peut etre cela sert-il a créer la fonction ?????)
Je suis plus que novice par rapport à vous alors c'est un peu du chinois même si j'essaie de comprendre.
Je suis allée sur le site de boisgontier et il est fait pour des calés en excel.
Je ne connais pas tout ce langage "english".......
Merci en tout cas de vos réponse
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

C'est bien à toi Caly que je m'adresse et travaille sur ton fichier.

modifier tes formules est rapide et Excel possède des outils puissants pour travailler simplement et rapidement, j'ai mis à jour l'onglet JANVIER et copié sur l'onglet FEVRIER et créé l'onglet MARS à toi de continuer.
Pour cela ouvre le Visual Basic (Alt et F11) double clic sur Thiswokbook et tu verras ces codes
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Calculate
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Calculate
End Sub

saisir une apostrophe devant chaque Calculate comme cela 'Calculate ce qui aura pour but de neutraliser la fonction et te faciliter l'intervention

revenir sur Excel et créer tous les onglets PRESENCE et MOIS sans ne mettre aucune données dans les feuilles, les laisser vierge, ensuite pour prendre en compte les formules et mise en page, activer l'onglet PRESENCE 01 et cliquer sur le module juste au dessus de l'en tête de ligne 1 et à gauche de l'en tête de colonne A, tu remarqueras une petite flèche en bas vers la droite, la page se sélectionnera dans son ensemble, clic droit Copier aller sur une feuille PRESENCE vierge clic droit sur A1 et Coller, aller sur un autre onglet PRESENCE vierge clic droit sur A1 et Coller ainsi de suite pour créer toutes les feuilles PRESENCE
recommencer pour les feuilles MOIS

revenir dans la Thiswokbook et supprimer les deux apostrophes

cela doit te prendre une dizaine de minutes max, si les cellules sont hachurées, il suffit de déplacer la cellule active pour que ton fichier s'actualise dès lors que tu auras supprimé l'apostrophe devant les Calculate
https://www.cjoint.com/c/EDtj1ST3SpT
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

Ps: prend plutôt ce fichier, dans le code j'ai laissé trainer une ligne inutile
ou supprime cette ligne
Var = Sheets(ActiveSheet.Index - 1).Range(cell.Address)

https://www.cjoint.com/c/EDtllAVhqUM
0