comment lire les données à partir d'une feuille de calcul excel de façon dynamique à l'aide de VBA 2003
Je suis nouveau dans la programmation vba donc j'ai besoin de votre aide d'un expert en essayant d'être capable de lire toutes les valeurs de la suite d'une feuille excel dans un objet ADODB jeu d'enregistrements à l'aide de VBA 2003
Le jeu d'enregistrements seront remplis comme suit
'Create new recordset with the following fields
Dim rsData as new ADODB.Recordset
rsData.Fields.Append "Month", adVarChar, 20
rsData.Fields.Append "Product", adVarChar, 20
rsData.Fields.Append "Type", adVarChar, 50
rsData.Fields.Append "Value", adVarChar, 50
rsData.Open
'for each row in spreadsheet read the following info
rsData.Addnew
rsData.Fields("Month") = 'value from row 2 Jan followed by data below
rsData.Fields("Product") = "Color" ' Value from B5
rsData.Fields("Type") = "MK1" ' value from C5
rsData.Fields("Value") = "111=" ' value from D6
'Now move to next set of values for Feb
rsData.Addnew
rsData.Fields("Month") = 'value from row 2 FEB
rsData.Fields("Product") = "Shade" ' Value from F5
rsData.Fields("Type") = "AB2" ' value from G5
rsData.Fields("Value") = "345=ABX" ' value from H5
'Now move to next set of values for Mar
rsData.Addnew
rsData.Fields("Month") = 'value from row 2 MAR
rsData.Fields("Product") = "Color" ' Value from F5
rsData.Fields("Type") = "3FG" ' value from G5
rsData.Fields("Value") = "PLZ" ' value from H5
'Now move to next row
rsData.Addnew
rsData.Fields("Month") = 'value from row 2 Jan
rsData.Fields("Product") = "Color" ' Value from F5
rsData.Fields("Type") = "MK2" ' value from C6
rsData.Fields("Value") = "234=BZX" ' value from D6
...and so on
Veuillez noter, **les données peuvent se déplacer, mais l'aspect général reste inchangé.
Comme vous pouvez le voir dans le diagramme suivant. l'ordre a changé: Janvier , mars, Février**
- Vous avez besoin pour rendre votre question claire.
Vous devez vous connecter pour publier un commentaire.
Votre problème n'est pas vraiment VBA pour Excel, le problème est que c'est une poubelle de la source de données. Si les blocs peuvent se déplacer et être dans n'importe quel ordre, vous n'avez vraiment pas de moyen facile de dire où ils seront et quelle quantité de données est en eux. Cela étant le cas, vous feriez beaucoup mieux de poser les questions:
("Mieux" = plus structuré, plus prévisible.)
Aussi que vous êtes de trop réfléchir en termes de chaque ligne, un record. Chaque bloc est tout à fait distinct de celui des autres et puisque chacun est unique "enregistrement d'en-tête" (en cours de mois), je serais enclin à traiter chaque bloc de la tour plutôt que d'essayer de sauter de l'un à l'autre comme votre exemple de code essaie de faire.
Ce qui suit devrait vous donner assez d'une mise à la terre pour être en mesure de naviguer à travers une feuille de calcul Excel. C'est juste quelque chose que j'ai buter rapidement et n'ont pas de balles de l'épreuve même si je n'ai tester avec une maquette de la feuille dans votre deuxième illustration et il a fait un travail. Il devrait être suffisant pour aider à vous mettre sur la bonne voie, mais j'ai de nouveau souligner... ce que vous avez n'est pas une véritable source de données. C'est un rapport qui doit être presque arbitrairement analysée. Vous avez besoin de voir si cela peut être abordés avant de faire quoi que ce soit.