Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/11/2011, 15h37   #1
Membre éprouvé
 
Avatar de Runsh63
 
Homme Duc
Nihiliste
Inscription : mars 2011
Messages : 395
Détails du profil
Informations personnelles :
Nom : Homme Duc
Âge : 31
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Nihiliste
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 395
Points : 419
Points : 419
Par défaut Passer de données sous forme matricielle à du ligne à ligne

Bonjour,

Je fais entorce au règlement en postant un fichier lors de l'ouverture d'un nouveau sujet, mais parfois un exemple vaut mieux que de longues phrases.
Tout est dans le titre, je cherche à passer de données sous forme matricielle à un tableau à 4 colonnes. Dans mon fichier joint, l'onglet "Start" est celui de départ, "End" celui d'arrivée et "Résultat celui auquel j'aimerais arriver.
Pouvez-vous m'aider SVP car là je galère... J'ai écrit un bout de code mais voyez ce que ça donne sur mon onglet "End"... Je suis loin du résultat
Si besoin de plus d'explications car peu (voire pas) clair, n'hésitez pas.

Vous remerciant par avance !
Fichiers attachés
Type de fichier : zip Matrice.zip (66,7 Ko, 4 affichages)
__________________
Cordialement,

Runsh
Runsh63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 16h36   #2
Membre éprouvé
 
Avatar de Runsh63
 
Homme Duc
Nihiliste
Inscription : mars 2011
Messages : 395
Détails du profil
Informations personnelles :
Nom : Homme Duc
Âge : 31
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Nihiliste
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 395
Points : 419
Points : 419
Pas résolu mais visiblement très mal expliqué, sujet à jeter aux oubliettes
__________________
Cordialement,

Runsh
Runsh63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 16h57   #3
Membre confirmé
 
Inscription : juillet 2006
Messages : 345
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 345
Points : 287
Points : 287
Bonjour,

Avec un truc dans cet esprit ca devrait pas être mal :

Code :
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
Sub test()
 
Dim rst As New ADODB.Recordset
Dim cnn As New ADODB.Connection
Dim tabData(65000, 3)
Dim cpt As Long
Dim iCol As Integer
 
cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties='Excel 12.0 Xml;HDR=YES'"
cnn.Open
 
rst.Open "select * from [Start$]", cnn
 
cpt = 0
iCol = 2
 
Do While Not rst.EOF
    For iCol = 2 To 15
        tabData(cpt, 0) = rst.Fields("Crit1")
        tabData(cpt, 1) = rst.Fields("Crit2")
        tabData(cpt, 2) = rst.Fields(iCol).Name
        tabData(cpt, 3) = rst.Fields(iCol)
        cpt = cpt + 1
    Next iCol
    rst.MoveNext
Loop
 
rst.Close
Set rst = Nothing
 
Sheets("Feuil1").Range("A1:D65000") = tabData()
 
End Sub
J'ai pas testé le resultat.
Access Newbie est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h36.


 
 
 
 
Partenaires

Hébergement Web