Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1983 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  excel - macro a executer sur chaque ligne d'une feuille

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

excel - macro a executer sur chaque ligne d'une feuille

n°1387258
zreka
Posté le 14-06-2006 à 11:48:14  profilanswer
 

bonjour, est ce qu'il est possible d'enregistrer un macro sur une ligne, et de la réexecuter sur les autres lignes que je veux ?

mood
Publicité
Posté le 14-06-2006 à 11:48:14  profilanswer
 

n°1387276
galopin01
Posté le 14-06-2006 à 12:07:22  profilanswer
 

bonjour,
Bien sur, c'est même pour ça qu'on enregistre des macros !
Mais ça nécessite parfois (souvent) quelques modifications.
 
Il faut être plus précis dans ton questionnement et nous montrer la macro enregistrée pour avoir une réponse plus pertinente.
A+

n°1387293
zreka
Posté le 14-06-2006 à 12:21:17  profilanswer
 

voici mon code :
 
sub Macro1()
 
Dim onglet As Integer
 
For onglet = 2 To Sheets.Count
 
    Sheets("Synthese" ).Select
     
    'opération faite pour la ligne 8
     
    Range("AC8" ).Select
    ActiveCell.FormulaR1C1 = "='1'!R[36]C[-24]"
    Range("AD8" ).Select
    ActiveCell.FormulaR1C1 = "='1'!R[23]C[-22]"
    Range("AE8" ).Select
    ActiveCell.FormulaR1C1 = "='1'!R[31]C[-23]"
    Range("AF8" ).Select
    ActiveCell.FormulaR1C1 = "='1'!R[34]C[-24]"
    Range("AG8" ).Select
    ActiveCell.FormulaR1C1 = "='1'!R[36]C[-25]"
    Range("AG9" ).Select
     
    'j'aimerai refaire pareil pour les autres ligne de ma page
    'synthese et que le nom de la feuille '1' soit incrémenté
     
End Sub

n°1387346
galopin01
Posté le 14-06-2006 à 13:28:58  profilanswer
 

Ouch !
Euh... Là je me sens une petite faiblesse d'un seul coup !
ça doit être faisable mais je n'ai pas le truc en tête.
 
Les données sont modifiables donc tu ne peux pas pas coller directement la valeur, donc tu es obligé de passer par une liaison c'est ça ?
ça serait beaucoup plus simple si on pouvait mettre directement la valeur de chaque cellule de chaque feuille au lieu de faire un = ...
 
Sinon, va falloir attendre les grosses têtes !
A+


Message édité par galopin01 le 14-06-2006 à 13:29:32

---------------
roger
n°1387398
zreka
Posté le 14-06-2006 à 14:00:51  profilanswer
 

oui , mais j'ai besoin de liaisons ... c'est pour eviter de saisir 2 fois les données !
en fait , le coeur de la question est :  peut on utiliser dans une fonction ... index par exemple, une variable "i" ....  
ex : =index(A1:D5;i;8)
et que le "i" varie en fonction de la feuille ou je me trouve ...
merci

n°1387427
Paul Hood
Posté le 14-06-2006 à 14:26:49  profilanswer
 

Juste pour essayer de d'aider....
tu veux faire quoi en clair, à part "Reproduire ce que je fais sur une ligne aux autres lignes et autres feuilles..."
 
Merci d'être un peu plus explicite

n°1387451
zreka
Posté le 14-06-2006 à 14:42:07  profilanswer
 

voila :
 
La première page est une cartographie d'ascenseur (par lignes : Lieu, no id, site, ...)  
les pages suivantes sont des feuilles similaires qui font office de facture pour chaque équipement  
donc autant de feuilles que de lignes sur la premiere page donc d'ascenseurs
 
il y a 2 étapes :  
 
1 . Sur cette première feuille a droite ; j'ai un tableau synthèse dont les  
infos doivent être "liés" avec une formule "=" avec les feuilles suivantes du classeur que j'ai nommé (1,2,3,4,5 ...)
 
donc 1er appareil (1ere ligne, doit récupérer infos de feuille 1  
2eme appareil de feuille 2 ...  
 
donc l'ideal serait comme j'ai essayé de le faire au dessus d'enregistrer l'opération sur une ligne et d'executer la macro sur la ligne d'apres et de se référer a la feuille d'apres ... etc
 
2. à l'inverse :
sur ces fameuses feuilles "factures" , il y a un petit tableau  
(caractéristiques de l'appareil)  
j'aimerai pouvoir récupérer les donnés de la "cartographie" et l'injecter dans ce tableau la pour chacune des feuilles ...  
 
feuille 1 ; Caractéristiques de l'équipement 1 (lieu, no id, site, ...)  
feuille 2 ; Caractéristiques de l'équipement 2 ...  
 
j'ai essayé de faire une macro avec une inconnue "i" a laquelle j'injecte la valeur "activesheet.index" pour que je puisse utiliser le no de la feuille... et utiliser la fonction Index pour chercher les infos.  
et donc d'exécuter la macro pour chacune des feuilles... mais ...
 
En gros j'aimerai pour l'exécution de la macro sur la feuille "i" qu'elle transmette les infos de la ligne "j" de la cartographie
"i+1" ==> "j+1" ...
 
voici mon mail perso si tu veu ke je t'envoi le document ...
merci  

n°1387452
zreka
Posté le 14-06-2006 à 14:42:24  profilanswer
 

mon mail : mlazrak@msn.com

n°1387458
Paul Hood
Posté le 14-06-2006 à 14:48:51  profilanswer
 

Entre temps j'ai vu ton autre post sur le même sujet.
 
Si ton problème c'est de passer en paramètre le nom de la feuille. Ca devrait t'aider
 
Sheets("Synthese" ).Select
    feuille = 1
    For i = 8 To 9
        CelAc = "AC" & i
        Sheets(feuille).Range(CelAc).Select
        ActiveCell.FormulaR1C1 = "='" & feuille & "'" & "!R[36]C[-24]"
    Next
Reste à modifier la formule "!R[36]C[-24]" en fonction de ce que tu veux récupérer
 
Ca t'aide ?

n°1387579
zreka
Posté le 14-06-2006 à 16:15:04  profilanswer
 

j'ai essayé de faire ca :  
 
Sub Macro3()
 
Dim i As Integer, j As Integer
Sheets("CARTO" ).Select
 
 For i = 8 To 52
 
    feuille = i - 7
    j = 44 - i
     
    CelAc = "AC" & i
     
    Range(CelAc).Select
    ActiveCell.FormulaR1C1 = "='" & feuille & "'" & "!R[j]C[-24]"
Next
     
End Sub
 
 
mais dans la formule il ne veut pas reconnaitre le "j" ... c'est l'incrémentation de "j" qu'il me faut

mood
Publicité
Posté le 14-06-2006 à 16:15:04  profilanswer
 

n°1387585
Paul Hood
Posté le 14-06-2006 à 16:18:58  profilanswer
 

Remplace
   ActiveCell.FormulaR1C1 = "='" & feuille & "'" & "!R[j]C[-24]"
par
   ActiveCell.FormulaR1C1 = "='" & feuille & "'" & "!R[" & j & "]C[-24]"
ca devrait aller mieux

n°1387592
zreka
Posté le 14-06-2006 à 16:25:23  profilanswer
 

ohhh excellent !!! merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  excel - macro a executer sur chaque ligne d'une feuille

 

Sujets relatifs
difficultés à manipuler les dates/heures pr Macro ExcelSGBD/SQL :récuperer sur 1 ligne toutes les infos d'un même ID
excelHelp ! Macro excel pour importer données de differents onglets
Recuperer données SQL en fichier Excel[Excel-VBA] Conversion de fichiers excel -> BD
structure générique de boutique en lignePasser un nom de feuille en variable
Plus de sujets relatifs à : excel - macro a executer sur chaque ligne d'une feuille


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR