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

Macros et VBA Excel Discussion :

Problème: Constituer un tableau sur une spreadsheet à partir de différentes spreadsheets [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    ingénieur recherche
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : ingénieur recherche

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Par défaut Problème: Constituer un tableau sur une spreadsheet à partir de différentes spreadsheets
    Bonjour à tous,

    Dans le cadre de l'un de mes travaux, j'ai besoin d'une macro allant chercher dans une liste de spreadsheet de longueur variable un nombre constant de données et de les raasembler sous forme d'un tableau dans une autre spreadsheet (toute les sheets en question appartiennent au même workbook).

    Afin d'y parvenir j'ai rédigé ma macro comme suit:


    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    CalibrationData_Gathering_Macro2()
    '
    'CalibrationData_Gathering_Macro2 Macro
    '
    'Touche de raccourcis du clavier : Ctrl+Shift+L
    '
    'Counting values 
    	'
    	'Definition
    	Dim i As Integer
    	Dim j As Integer
    	Dim C As integer
    	Dim Ws As Worksheet
    	'
    	'Value of C
                  C=0
    	For Each Ws In ThisWorkbook.Worksheets
    		If Ws.Name <> "Calibration" and Ws.Name <> "Abstract" Then 
    			C=C+1
    		End If
    	Next
    	'
    	Range("A18").Select
    	ActiveCell.FormulaR1C1= C+1
    '
    'Information point's table
    	'
    	'Table Definition
    	'
    	Worksheets("Calibration").Activate
    	'
    	For j=1 To 7
    		Worksheets("Calibration").Range(R1C[j+1]).Value = Worksheets(3).Range(R[3+j]C18).Value
    	Next
    	'
    	For i=1 To C
    		Worksheets("Calibration").Range(R[1+i]C1).Select
    		ActiveCell.FormulaR1C1 = "=Worksheets(i).Name"
    	Next
    	'
    	'Table Filling up
    	'
    	For i=1 To C
    		For j=1 To 7
    			Worksheets("Calibration").Range(R[i+1]C[j+1]).Select
    			ActiveCell.FormulaR1C1 = "Worksheets(i).Range(R[j+3]C19).Value"
    		Next
    	Next
    Ma façon de dérouler la boucle "for" pour scruter des cellules particulières (parties de couleures différentes dans l'extrait au dessus), ne convient pas.

    Connaitriez vous une meilleure syntaxe?

    Merci pour votre aide ^^

  2. #2
    Membre averti
    Homme Profil pro
    ingénieur recherche
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : ingénieur recherche

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Par défaut Solution au problème
    Ne plus travailler avec Range dans les boucles mais avec Cells:

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    'Information point's table
        '
        'Table Definition
        '
        Worksheets("Calibration").Activate
        '
        For j = 2 To 8
            Worksheets("Calibration").Cells(1, j).Select
            ActiveCell.FormulaR1C1 = Worksheets(3).Cells(j + 2, 18)
        Next
        '
        For i = 1 To C
            Worksheets("Calibration").Cells(1 + i, 1).Select
            ActiveCell.FormulaR1C1 = Worksheets(i).Name
        Next
        '
        'Table Filling up
        '
        For i = 1 To C + 1
            For j = 2 To 8
                Worksheets("Calibration").Cells(i + 1, j).Select
                ActiveCell.FormulaR1C1 = Worksheets(i).Cells(j + 2, 19)
            Next
        Next
    '

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion de tableau sur word a partir d'une macro sur Excel
    Par saninx dans le forum Général VBA
    Réponses: 4
    Dernier message: 27/03/2015, 09h23
  2. [XL-2007] récupération de données à partir d'un tableau sur une autre feuille
    Par cindy6311 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 05/08/2009, 14h34
  3. [Avertis]Problème Infobulle/Popup Onmouseover sur une image
    Par Yanos dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 04/05/2006, 14h10
  4. Problème avec les indexes sur une base de données.
    Par osoudee dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 09/02/2006, 09h24
  5. [Tableaux] récupérer un tableau sur une autre page
    Par samsso2005 dans le forum Langage
    Réponses: 3
    Dernier message: 27/01/2006, 22h58

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