generation tableau source depuis plusieurs classeurs

Y compris Power BI, Power Query et toute autre question en lien avec Excel
t
thomthai69
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 11 janvier 2018
Version d'Excel : 2010

Message par thomthai69 » 11 janvier 2018, 16:08

Bonjour,

Je souhaite créer un macro afin d'auto remplir 2 tableaux contenant des valeurs sources de positions en integer

Cependant, j'effectue les calculs a implémenter sur 19 classeurs différents

Les calculs concernent deux axes, x et y

Le premier tableau doit lister les valeurs de x par rapport a chaque y le croisant sur la grille
Le deuxieme gère les y

n'étant pas fortiche avec le code macro, je ne sais pas par ou commencer...

merci d'avance pour vos conseils

Thomas
g
gmb
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'684
Appréciations reçues : 343
Inscrit le : 4 avril 2013
Version d'Excel : 2016

Message par gmb » 11 janvier 2018, 19:30

Bonjour et bienvenue sur le forum

Si tu ne joins pas de fichier en donnant un exemple de ce que tu veux obtenir, ils sera difficile de te proposer quelque chose...
Bye !
t
thomthai69
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 11 janvier 2018
Version d'Excel : 2010

Message par thomthai69 » 12 janvier 2018, 08:21

Bonjour,

Désolé je me suis mal expliqué. En attachement les screen shot de ce que j'essaie de faire.

En gros je remplis une vingtaine de feuille sources et tache de monter une recopie automatique dans le tableau cible.

Il y a deux tableaux cibles, un de type x(x) y(x) déterminant des valeurs réelles de x en rapport a un y et le deuxième de y par rapport a un x

les screen shots en attachement des tables

Voici ou j'en suis, en récupérant des bouts de code de part et d'autre et en adaptant.

Malheureusement pour l'instant rien ne se passe, j'essaye de modifier les commandes mais ne maitrisant pas vraiment je bloque un peu...
Sub test()
 
    Dim ferack1 As Worksheet
    Dim fetable As Worksheet
    Dim PlgSource As Range
    Dim PlgDest As Range
    Dim Cel As Range
    Dim Ligne As Long
 
    'défini les feuilles
    Set ferack1 = Worksheets("rack1") 'peut etre tous les mettre la pour reduire la taille macro si possible
    Set fetable = Worksheets("table")
 
    'défini les plages
    With ferack1
 
        Set PlgSource = .Range(.Cells("25,4"), .Cells(.Rows.Count, 1).End(xlUp)) 'plage recherche cell ID  dans fe source
 
    End With
 
    With fetable
 
        Set PlgDest = .Range(.Cells("2,1"), .Cells(.Rows.Count, 1).End(xlUp)) 'plage recherche cell ID dans fe dest
 
    End With
 
    'parcour la plage (en colonne A) de la feuille de destination
    For Each Cel In PlgDest
 
        'gestion de l'erreur de la valeur non trouvé
        On Error Resume Next
        Ligne = Application.WorksheetFunction.Match(Cel.Value, PlgSource, 0) + 2 'rajoute 2 car départ de plage en ligne 3 '1 pour moi
 
        'si pas d'erreur, récupère les valeurs en colonnes E et les inscrit en colonne D
        If Err.Number = 0 Then
 
            Cel.Offset(, 3).Value = ferack1.Cells(Ligne, 1).Offset(, 1).Value
 
        End If
 
    Next Cel
 
End Sub


Merci d'avance pour vos eclairsissements

Thom
tableau source.png
tableau cible.png
exemple index.png
t
thomthai69
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 11 janvier 2018
Version d'Excel : 2010

Message par thomthai69 » 15 janvier 2018, 13:04

Bonjour,

J'ai rajouté le code que je suis parvenu a établir pour commentaires/aide...

Merci d'avance

Thomas
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message