Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Problème avec array

kingfadhel

XLDnaute Impliqué
Bonsoir à tous,
J'ai un tableau mensuel (données brutes "DEF_GRH_2019_001.xlsx) que je dois le traiter par unités et par défaillances ....
J'ai aussi un classeur TBD sur lequel plusieurs tableau avec des détails
==> donc je dois importer les données brutes sur le TBD.
J'ai réussi à importer les données brutes dans un array, et j'ai réussi aussi extraire les données voulues et les stocker dans un array aussi,
le problème que je recontre est le suivant:
je ne réussi pas à transférer le tableau (array) dont je stock les données voulues à une feuille,
par contre dans la requête j'ai réussi à transférer les données voulues une par une dans la feuille.

Comment transférer les données stockées dans un array vers un emplacement spécifique exemple [A1]
 

Pièces jointes

  • DEF_GRH_2019_001.xlsx
    125.9 KB · Affichages: 23
  • Requete Classeur Fermé.xlsm
    19.5 KB · Affichages: 15
Solution
Bonjour King,
et avec Mégane pas de problème?
VB:
Sub testdysorthographie()
    Dim Bd, arr, col&, ligne2&, x&
    ChDrive ThisWorkbook.Path: ChDir ThisWorkbook.Path
    Bd = Application.GetOpenFilename("Excel Files (*.xlsx), *.xlsx", , "Selectionnez un  classeur source")    'dialog fichier

    If Bd = False Then MsgBox " operation de récupération annulée": Exit Sub    'on sort si on annule dans le dialog

    'valeur recherchée dans la colonne 12 du tableau structuré du fichier fermé
    arr = " (3200000, 3000001, 3200020, 3200100, 3200110, 3200120, 3210000, 3212000, 3212010, 3212100, 3212110, 3212120, 3212200, 3212210, 3212220, 3212300, 3212310, 3212320, 3212400, 3212410, 3212420, 3212430, 3220000, 3220010, 3221000, 3221100, 3221110...

kingfadhel

XLDnaute Impliqué
Bonsoir à tous,
@dysorthographie comment ajouter un count à la commande sql?
Votre code m'a mis sur une nouvelle et meilleure piste.
Comment compter le nombre de jours relatifs à un service et un type de défaillance bien déterminer.
J'ai essayé de modifié le code mais je n'arrive pas à lire le résultat
Comment récupérer le résultat de la requête dans une cellule : D4 par exemple

Requete:
Sql = "select Count([NB_JOUR]) from [Feuil1$] where [CDPOSTE] ='" & 3111220 & "' and [CODEF]='" & 16 & "'"

 

patricktoulon

XLDnaute Barbatruc
bonsoir @kingfadhel
arrivé a un moment il faut se demander si une requête ne devient pas trop complexe
et alors revenir sur une variable tableau sur la quelle tu pourra toujours travailler
je ne remet pas en cause le where in de robert mais tout simplement l’intérêt a ce que qu'une macro soit modifiable ou plus facile a déboguer
l'exercice de style c'est bien mais un moment il faut avancer
je te laisse méditer sur ce point
 

dysorthographie

XLDnaute Accro
Bonjour King et bonjour Patrick,

pour moi les limite de requête sql sur Excel est lié au fait qu'il ne dépasse pas la taille d'un fichier 2003 {XLS}, ainsi l'absence de la méthode delete!

mais effectivement on peut ce poser la question du SQL ou VBA et variable tableau!

pour ce qui concerne la requête de King, pour mois les CDPOSTE et CODEF sont du numérique!
VB:
Sql = "select Count([NB_JOUR]) from [Feuil1$] where [CDPOSTE] =3111220 and [CODEF]=16"
 
Dernière édition:

kingfadhel

XLDnaute Impliqué
Bonjour,
Code:
SQL="Update [Feuil1$] set [CODEF]=123456 where [CDPOSTE] =3111220 and [CODEF]=16"
Cn.execute SQL

J'ai écris cette requête mais ca ne marche pas:
VB:
With CreateObject("ADODB.Connection")
Sql = "UPDATE [Feuil1$] SET [NB_JOUR]=[DATE_FIN]-[DATE_DEBUT]+1 WHERE [CODEF]='" & 52 & "'"
.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & BD & ";Extended Properties='Excel 12.0;HDR=Yes'"
.Execute (Sql)
.Close
End With
 

Discussions similaires

Réponses
20
Affichages
508
Réponses
2
Affichages
109
Réponses
16
Affichages
481
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…