IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

copier coller formule automatique [XL-2002]


Sujet :

Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 110
    Points : 58
    Points
    58
    Par défaut copier coller formule automatique
    bonjour
    je vais essayer d'être clair
    quand vous avez une formule du type
    =Feuil1!A1
    si vous tirez la cellule vers le bas , elle devient
    =Feuil1!A1
    =Feuil1!A2
    =Feuil1!A3 ...
    si vous bloquez la cellule et que vous faites la même chose , ça devient
    =Feuil1!$A$1
    =Feuil1!$A$1
    =Feuil1!$A$1 ...
    mais , moi , je voudrai que la cellule soit bloquée et que la feuille évolue , du type
    =Feuil1!$A$1
    =Feuil2!$A$1
    =Feuil3!$A$1 ...
    en tirant la formule vers le bas de la colonne
    comment faire ?
    merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    660
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 660
    Points : 782
    Points
    782
    Par défaut
    Bonjour,

    Essaie ceci en ligne 1 d'une autre feuille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDIRECT("Feuil"&LIGNE()&"!A1")
    formule à copier vers le bas, le nom des feuilles s'incrémentera.

    Si la formule commence en ligne 5 (par exemple), remplace dans la formule LIGNE() par LIGNE()-4

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 110
    Points : 58
    Points
    58
    Par défaut copier coller formule automatique
    bonjour
    je pensais qu'il y avait une astuce encore plus simple
    mais ça fonctionne
    et ça va me faire gagner beaucoup de temps
    merci

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 110
    Points : 58
    Points
    58
    Par défaut copier coller formule automatique
    bonjour
    j'aurai voulu demander une chose supplémentaire sur ce thême
    avec toujours la formule de départ
    =Feuil1!A1
    en tirant la formule vers le bas j'aurai voulu avoir
    =Feuil1!A1
    =Feuil1!B1
    =Feuil1!C1
    =Feuil2!A1
    =Feuil2!B1
    =Feuil2!C1
    =Feuil3!A1
    ...
    merci de vôtre aide

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Points : 688
    Points
    688
    Par défaut
    Je ne suis pas sure que ca soit le plus simple, mais ca marche (version anglaise)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDIRECT("Feuil"&ROUNDUP(ROW()/3;0)&"!"&CHAR(IF(MOD(ROW();3)=0;3;MOD(ROW();3))+64)&"1")
    Normalement, la version francaise donnerait ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDIRECT("Feuil"&ARRONDI.SUP(LIGNE()/3;0)&"!"&CAR(SI(MOD(LIGNE();3)=0;3;MOD(LIGNE();3))+64)&"1")

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 110
    Points : 58
    Points
    58
    Par défaut copier coller formule automatique
    bonjour
    je vais essayer cette formule
    merci

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 110
    Points : 58
    Points
    58
    Par défaut copier coller formule automatique
    bonjour
    la formule m'a l'air un peu compliqué et donc je n'arrive pas à l'appliquer .
    merci

  8. #8
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Points : 688
    Points
    688
    Par défaut
    Qu'est-ce que tu ne comprends pas dans la formule?

    Et pour mieux visualiser ce que tu fais exactement, je te propose de retirer le indirect et de ne le remettre que tout à la fin

    permet de recomposer a partir d'une chaine de caractere un lien vers la formule
    indirect("A1") va donner le meme résultat que de faire =A1


    & permet de lier deux chaînes de caractères

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =ARRONDI.SUP(nombre;nbre de décimale)
    Ca arrondi au supérieur
    ARRONDI.SUP(5.51;1) va donner 5.6,
    ARRONDI.SUP(5.01;0) va donner 6

    Donne le n° de la ligne sur la quelle on se trouve

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ARRONDI.SUP(LIGNE()/3;0)
    Donne un nombre entier qui change toute les 3 lignes (si tu met /5 il changera toute les 5 lignes par exemple).
    Le but étant d'augmenter le n° de page, mais pas chaque fois. Histoire de pouvoir avoir les 3 cellules de ta page 1, et puis les 3 cellules de ta page 2,...


    Ce que j'essaye de lui faire faire ensuite c'est
    "si c'est une ligne qui vaut 3X+1 (1, 4, 7, 10,...) alors, affiche la lettre A. Si c'est une ligne qui vaut 3x +2 (2, 5, 8, 11,...), alors affiche la lettre B. Et si c'est une ligne qui vaut 3x+3 (3, 6, 9, 12,...), alors affiche la lettre C"

    Permet a partir d'un nombre de retrouvé la lettre avec le code correspondant.
    65 = A
    66 = B
    67 = C
    ...

    Je m'en sert parce que ca permet de passer a la lettre suivante. Donc avec ca, je passe a
    "si c'est une ligne qui vaut 3X+1 (1, 4, 7, 10,...) alors, trouve a partir du n° de ligne 65. Si c'est une ligne qui vaut 3x +2 (2, 5, 8, 11,...), alors trouve a partir du n° de ligne 66. Et si c'est une ligne qui vaut 3x+3 (3, 6, 9, 12,...), alors trouve a partir du n° de ligne 67"

    Donc le reste entier d'une division
    =mod(10;3) vaut 1
    =mod(15;4) vaut 3

    Et donc si tu fais mod(ligne();3), ca va te donner 0 si c'est une ligne 3x+3, 1 si c'est une ligne 3X+1 et 1 si c'est une ligne 3X+2

    Ca devient bien, mais le 0 m'embete, je voudrais bien un 3 a la place (comme ca, je pourrais faire 64 + mon résultat, ce qui me donnerait, selon la ligne 65, 66 ou 67)
    Donc je met un petit si (résultat = 0; 3 ; résultat)

    Je regroupe le tout, je n'oublie pas de rajouter un "1" a la fin

    Si tu veux adapter la formule, par exemple parce que tu as plus de 3 lettres a mettre, il suffit de changer tout les 3 en autre chose (5 si tu veux de A a E par exemple)
    Et c'est une formule qui ne fonctionne que jusqu'a la lettre Z, s'il y a plus de colonne que ca, il en faudra une autre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDIRECT("Feuil"&ARRONDI.SUP(LIGNE()/3;0)&"!"&CAR(SI(MOD(LIGNE();3)=0;3;MOD(LIGNE();3))+64)&"1")

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 110
    Points : 58
    Points
    58
    Par défaut copier coller formule automatique
    bonjour
    merci de votre aide
    je vais travailler tout ça

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 110
    Points : 58
    Points
    58
    Par défaut copier coller formule automatique
    bonjour
    bon ,dans le style ,je comprend vite ,mais il faut m'expliquer longtemps
    voilà où j' en suis
    j'ai réussi à appliquer une partie de la formule
    =indirect("sem0"&arrondie.sup(ligne()/21;0)&"!C1")
    j'explique
    sem0 : parce que mes feuilles sont en semaine (52 en tout)
    et "0" parce que sans le "0" ça ne fonctionne pas , donc après semaine "09" je suis obligé de nommer "sem010"
    21 : parce que les cellules consernées sont toutes les 7 cellules mais fusionnée par 3 cellules (donc 3*7=21)

    mais quand je tire les cellules vers le bas (sur 360 cellules(je sais ,c"est longt)),au bout d'un moment j'ai un décalage illogique
    par contre , sur le reste de la formule que vous m'avez donné, je n'ai pas encore compris (je sais ,c'est dure)

  11. #11
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Points : 688
    Points
    688
    Par défaut
    tu peux résoudre ton probleme de 0 avec un si
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(résultat<10;"0"&résultat;résultat)
    l'autre partie de la formule sert a generer
    A
    B
    C
    A
    B
    C
    A
    ...
    en fonction du n° de ligne

    On peut convertir un n° en lettre (grace a la fonction car()) et donc, le but du jeu, c'est de trouver par quel caclul on va pouvoir transformer le n° de ligne en n° qui corresponde a la bonne lettre

    Le A est a 65, le B a 66, le C a 67,...

    Donc pour avoir ABCABCA... il faut qu'on arrive a faire 65, 66, 67, 65, 66, 67, 65,...

    Pour faire ca, je propose de faire 64 +1, 64 +2, 64 +3, 64 +1, 64 +2, 64 +3, 64 +1, ...
    Et pour avoir 1, 2 ou 3, on regarde le reste quand on divise par 3. (le reste, c'est quand on fait "combien de fois je peux mettre 3 dans x" et puis qu'on fait x- 3 fois ce nombre. Par exemple, combien de fois est-ce que je peux mettre 3 dans 17, réponse, 5. Et le reste c'est 17-(5*3), donc 2)
    Le reste vaut forcement moins que le nombre par le quel on divise. Dans le cas de 3, il faut forcement soit 1, soit 2, soit 0
    Donc la en fonction du n° de ligne, on a 1, 2 ou 0. C'est presque bon, mais le 0 m'ennuie, je voudrais 3 a la place (ou alors on fait 65 +0, 65 +1 et 65+2 mais alors l'ordre n'est plus bon, c'est B C A au lieu d'ABC)
    Donc je m'en tire avec un si(résultat = 0; 3 ; résultat)

  12. #12
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Formule Excel
    Je cherche à augmenter la lettre et pas le chiffre en tirant une formule excel vers le bas !
    Merci

  13. #13
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Points : 688
    Points
    688
    Par défaut
    si tu as moins de 27 colonnes de concernées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDIRECT("Sheet2!"&CAR(64+LIGNE())&"1")
    en A1, et puis tu tires vers le bas

    Si tu as plus de 27 colonne de concernées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDIRECT("Sheet2!"&STXT(CELLULE("address";INDEX($1:$1;LIGNE()));2;TROUVE("$";CELLULE("address";INDEX($1:$1;LIGNE()));2)-2)&"1")
    en A1, et puis tu tires vers le bas

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 110
    Points : 58
    Points
    58
    Par défaut copier coller formule automatique
    bonjour
    avec toutes vos informations , j'arrive à m'en sortir et à gagner beaucoup de temps
    nouveau petit problème
    la manipulation est toujours la même : plusieurs cellules dans plusieurs feuilles , sauf que dans un nouveau classeur , les ongles des feuilles prennent le nom mis dans une cellule
    donc toutes les feuilles se retrouvent avec des noms d'onglet sans logique de suite
    si je vais chercher cellule par cellule , (=Feuill1!A1) puis (=Feuill2!A1),même si le nom de la feuille change ,il va chercher la bonne information dans la bonne feuille ,mais avec INDIRECT,si le nom de la feuille change,il ne retrouve plus la cellule
    comment appeler la feuille dans INDIRECT ?
    merci

  15. #15
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Points : 688
    Points
    688
    Par défaut
    mmm, si tu télécharge un add on pour excel qui s'appelle morefunc, tu peux récuperer la fonction suivante
    La premiere permet de récuperer dans une cellule le nom de l'onglet
    la seconde permet d'acceder a une cellule d'une autre page (ca décale dun nombre d'onglet que tu indique apres le premier point virgule)
    C'est a dire que la, ca irait chercher A1 de l'onglet suivant (et si tu veux autre chose que A1, A1, B1 et C1 par exemple tu le composes comme on t'a monté plus haut)

    morefunc contient aussi
    Qui peut etre assez pratique, ca donne le nom de l'onglet dans le quel se trouve la cellule

    Ou sinon, si ca ne t'arrange pas d'aller chercher morefunc (parce que le fichier doit etre utilisé par plein de personne qui ne l'ont pas d'installé par exemple), alors il faut passer par du VBA, la tu peux indiquer le n° de l'onglet au lieu de son nom

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 110
    Points : 58
    Points
    58
    Par défaut copier coller formule automatique
    bonjour
    merci pour votre aide
    mais je ne peux pas télécharger ou ajouter un programme , parce que c'est au travail
    merci

  17. #17
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Points : 688
    Points
    688
    Par défaut
    C'est pas vraiment un programme, seulement des fonctions en plus pour Excel. Cela dit, c'est possible que ton service informatique n'en veuille pas quand meme

    Je ne connais pas de moyen, par formule de base, de passer d'un onglet a l'autre s'il n'y a pas de logique dans les noms d'onglets

    En VBA par contre, tu peux utiliser soit le nom de l'onglet, soit son n° (Sheet(x)), ce qui permet, avec une boucle, d'écrire pour chaque onglet les cellules de y à z sur une page

    Ca ne sera pas une formule a étirer mais une macro a lancer. Est-ce que ca conviendrait?

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 110
    Points : 58
    Points
    58
    Par défaut copier coller formule automatique
    merci
    je vais essayer

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 110
    Points : 58
    Points
    58
    Par défaut copier coller formule automatique
    bonjour
    en fouillant un peu
    j'ai vu que si le nom de la feuille était variable , on pouvait aller chercher la cellule qui lui donne son nom
    j'ai vu aussi que l'onglet avait un index , ne peut on pas l'utiliser?
    formules ou codes vba à partir de ces solutions me seraient très utile
    merci d'avance

  20. #20
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Points : 688
    Points
    688
    Par défaut
    la cellule qui donne son nom?
    une fois dans la bonne feuille, tu peux via une formule afficher dans une cellule le nom du chemain d'acces, du fichier et de l'onglet

    donne comme résultat "C:\Documents and Settings\XXX\Desktop\[Book1.xls]Sheet1"
    et donc tu peux t'en servir pour avoir le nom de l'onglet

    mais le probleme, c'est qu'il faut soit etre déja sur la bonne page, soit lui donner la référence d'une cellule sur la bonne page. Ce qu'on ne sait pas faire, vu qu'on a pas encore le nom de l'onglet

    Et pour l'index, il y en a un en VBA mais pas pour les formules, du moins pas que je sache

    en VBA, si tu veux un exemple de code qui va chercher les noms d'onglets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub nom_onglet()
    'compter le nombre de feuille et le mettre dans une vriable
    nbre = Sheets.Count
     
    'faire une petite boucle, une fois pour chaque feuille
    'ou on met le nom de la feuille dans une cellule de la premiere feuille
    For i = 1 To nbre
    Sheets(1).Cells(i, 1) = Sheets(i).Name
    Next i
     
    End Sub
    Sheets(i) permet de travailler avec le ieme onglet au lieu de devoir le nommer, donc on les fait tous les un a la suite des autres et c'est bon

    Voila un petit code qui copie A1, A2 et A3 de tout les onglets sauf le premier dans le premier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub copier_A1_A2_A3()
    'compter le nombre de feuille et le mettre dans une vriable
    nbre = Sheets.Count
    n = 1
    'faire une petite boucle, une fois pour chaque feuille
    'ou on met le nom de la feuille dans une cellule de la premiere feuille
    For i = 2 To nbre
    Sheets(1).Cells(n, 1) = Sheets(i).Cells(1, 1)
    n = n + 1
    Sheets(1).Cells(n, 1) = Sheets(i).Cells(2, 1)
    n = n + 1
    Sheets(1).Cells(n, 1) = Sheets(i).Cells(3, 1)
    n = n + 1
    Next i
     
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. copier/coller conditionnel "automatique"
    Par mavvv dans le forum Excel
    Réponses: 2
    Dernier message: 01/04/2014, 15h16
  2. [XL-2003] copier/coller formule sur nombre de lignes remplies
    Par clemini dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/03/2010, 10h55
  3. copier et coller formule
    Par lili2173 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/03/2008, 13h46
  4. Réponses: 3
    Dernier message: 26/08/2007, 23h36
  5. Réponses: 5
    Dernier message: 21/12/2006, 19h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo