Export de données vers des tableaux

Le
Apitos
Bonjour à tous,

Dans un classeur, j'ai une BDD depuis laquelle j'aimerais exporter des donn=
ées vers des tableaux situés dans d'autres feuilles dans le même clas=
seur.

Les tableaux sont de structures différentes dans les colonnes.

Par exemple:

- En feuil2, "Groupes électrogène" à 4 colonnes et "Ondulaires" à 5=
colonnes.

- En feuil3, "Ateliers d'énergie" à 5 colonnes et "Batteries de l'ateli=
er" à 4 colonnes.

Comment peut-on généraliser le traitement dans une seule boucle.


Le classeur en pièce jointe.

http://www.cjoint.com/c/EFtrAL0Rhyd

Merci d'avance.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacquouille
Le #26357272
Bonjour
Je n'y connais absolument rien en BDD, mais je me demande si, en nommant tes
colonnes ou tes plages, tu n'y aurais pas accès, quelle que soient leurs
positions

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Apitos" a écrit dans le message de groupe de discussion :


Bonjour à tous,

Dans un classeur, j'ai une BDD depuis laquelle j'aimerais exporter des
données vers des tableaux situés dans d'autres feuilles dans le même
classeur.

Les tableaux sont de structures différentes dans les colonnes.

Par exemple:

- En feuil2, "Groupes électrogène" à 4 colonnes et "Ondulaires" à 5
colonnes.

- En feuil3, "Ateliers d'énergie" à 5 colonnes et "Batteries de l'atelier" à
4 colonnes.

Comment peut-on généraliser le traitement dans une seule boucle.


Le classeur en pièce jointe.

http://www.cjoint.com/c/EFtrAL0Rhyd

Merci d'avance.


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Apitos
Le #26357283
Bonjour Jacquouille,

Les colonnes sont fixes quelle que soit la plage nommée, ensuite il faut boucler sur cette plage nommée...
DanielCo
Le #26357309
Bonjour,
Le mmoyen le plus simple consiste à mettre les mêmes entêtes sur la
base et sur les tableaux cibles.
Cordialement.
Daniel


Bonjour à tous,

Dans un classeur, j'ai une BDD depuis laquelle j'aimerais exporter des
données vers des tableaux situés dans d'autres feuilles dans le même
classeur.

Les tableaux sont de structures différentes dans les colonnes.

Par exemple:

- En feuil2, "Groupes électrogène" à 4 colonnes et "Ondulaires" à 5 colonnes.

- En feuil3, "Ateliers d'énergie" à 5 colonnes et "Batteries de l'atelier" à
4 colonnes.

Comment peut-on généraliser le traitement dans une seule boucle.


Le classeur en pièce jointe.

http://www.cjoint.com/c/EFtrAL0Rhyd

Merci d'avance.
Apitos
Le #26357327
Bonjour Daniel,

C'est cette structure qui m'est exigée pour remplir les tableaux.
DanielCo
Le #26357326
Je m'en doutais un peu... Alors, pour chaque entête de chaque tableau,
peux-tu donner le nom de l'entête de la base de donées ?
Daniel


Bonjour Daniel,

C'est cette structure qui m'est exigée pour remplir les tableaux.
Apitos
Le #26357359
Correspondance des entêtes Tableaux - BDD :

http://www.cjoint.com/c/EFumS7iQRFQ
DanielCo
Le #26357432
Voici le début de la macro. J'ai traité Feuil1. Reproduis le traitement
pour les autres feuilles.
Option Base 1
Sub Export()
Dim F1_1 As Variant, F2_1 As Variant, F3_1 As Variant, F4_1 As Variant,
Sh As Worksheet
Dim F1_2 As Variant, F2_2 As Variant, F3_2 As Variant, F4_2 As Variant
Dim L1 As Long, L2 As Long, L3 As Long, L4 As Long
Dim Plage As Range, C As Range
L1 = 4: L2 = 4: L3 = 4: L4 = 4
Set Sh = Sheets("BDD")
With Sheets("BDD")
F1_1 = Array("Site", "Fournisseur", "Capacité", "DMS")
F1_2 = Array("Site", "Fournisseur", "Capacité", "DMS", "Etat")
F2_1 = F1_2
F2_2 = Array("Site", "Fournisseur", "Capacité", "Qté", "DMS",
"Etat")
F3_1 = F2_2
F3_2 = F2_1
F4_1 = F3_1
F4_2 = F3_2
Set Plage = .Range("D6", .Cells(.Rows.Count, 4).End(xlUp))
End With
For Each C In Plage
If C.Row = 29 Then Stop
Select Case C.Value
Case "Transformateurs"
With Sheets("Feuil1")
L1 = L1 + 1
For i = 1 To 4
Col = Application.Match(F1_2(i), Sh.[5:5], 0)
.Cells(L1, i + 3).Value = Sh.Cells(C.Row,
Col).Value
Next i
End With
Case "Régulateurs"
With Sheets("Feuil1")
L1 = L1 + 1
.Cells(L1, 4).Value = Sh.Cells(C.Row, Col).Value
For i = 2 To 5
Col = Application.Match(F1_1(i), Sh.[5:5], 0)
.Cells(L1, i + 7).Value = Sh.Cells(C.Row,
Col).Value
Next i
End With
End Select
Next C
End Sub
Daniel


Correspondance des entêtes Tableaux - BDD :

http://www.cjoint.com/c/EFumS7iQRFQ
Apitos
Le #26357450
Bonjour,

J'ai fait des testes.

Une erreur sur la ligne :

.Cells(L1, 4).Value = Sh.Cells(C.Row, Col).Value

Dans le cas "Régulateur" (Sans s à la fin, parce que dans la feuille "B DD" on trouve "Régulateur")

La variable Col n'est pas définie.

J'ai remplacé Col par 1, mais ça pose probleme, parce que le nom du sit e sera écrit en deux fois dans la colonne D Feuil1.

---

Une erreur sur la ligne toujours dans le cas "Régulateur" :


For i = 2 To 5
Col = Application.Match(F1_1(i), Sh.[5:5], 0)
.Cells(L1, i + 7).Value = Sh.Cells(C.Row, Col).Value
Next i

Parce que l'élément F1_1(5) n'existe pas !

Je remplacé le 5 par 4

----
Je voulais que le tableau Feui1![D5:M32] soit effacé avant chaque mise à jour, mais ça ne m'a pas réussi !
DanielCo
Le #26357466
Bonjour,
Il y a aussi un problème de pluriel avec "transformateur". Poste ton
code parce que, si le problème survient sur une ligne "régulateur", il
s'agit d'une partie du code que tu as rajouté.
Daniel


Bonjour,

J'ai fait des testes.

Une erreur sur la ligne :

.Cells(L1, 4).Value = Sh.Cells(C.Row, Col).Value

Dans le cas "Régulateur" (Sans s à la fin, parce que dans la feuille "BDD" on
trouve "Régulateur")

La variable Col n'est pas définie.

J'ai remplacé Col par 1, mais ça pose probleme, parce que le nom du site sera
écrit en deux fois dans la colonne D Feuil1.

---

Une erreur sur la ligne toujours dans le cas "Régulateur" :


For i = 2 To 5
Col = Application.Match(F1_1(i), Sh.[5:5], 0)
.Cells(L1, i + 7).Value = Sh.Cells(C.Row, Col).Value
Next i

Parce que l'élément F1_1(5) n'existe pas !

Je remplacé le 5 par 4

----
Je voulais que le tableau Feui1![D5:M32] soit effacé avant chaque mise à
jour, mais ça ne m'a pas réussi !
Apitos
Publicité
Poster une réponse
Anonyme