Récupération des plusieurs plages de données, classeur fermé

Tok-Ra

XLDnaute Junior
Bonsoir le foruuuum, j'espere qu'il va bien :D !!!!!

Bon alors voila, je suis toujours sur le même projet que lorsque j'ai demandé de l'aide pour les combobox en cascade mais la, j'ai un nouveau probleme.
J'utilise ce code (encore merci le forum) pour récuperer des données dans un classeur fermé:

Code:
Sub Recup11(vDir As String, vFile)

        Sheets("Données").Select
        Range("B10:E376").FormulaArray = "='" & vDir & "\[" & vFile & "]" & "SAISIE" & "'!" & "F7:I373"
        Range("B10:E376") = Range("B10:E376").Value
        Dim t(), i As Integer, j As Integer
        t = Range("B10:E376")
            For i = LBound(t, 1) To UBound(t, 1)
                For j = LBound(t, 2) To UBound(t, 2)
                    If t(i, j) = 0 Then t(i, j) = ""
                Next j
            Next i
        Range("B10:E376") = t
Sheets("Récapitulatif").Select

End Sub

Seulement voila, ce code ne marche qu'avec une seule plage aussi bien pour la source que pour la destination.
J'aimerais le même style de code pour pouvoir mettre plusieurs plages (jusqu'a 50) aussi bien en source qu'en destination. J'ai testé pas mal de possibilité mais en vain.
Je sollicite donc votre aide !

Merci pour votre lecture ;) et merci par avance !
 

Tok-Ra

XLDnaute Junior
Re : Récupération des plusieurs plages de données, classeur fermé

Re bonsoir !
Je m'auto répond !
J'ai tenté avec la méthode ADO pour me faire une fonction, ça fonctionne pas mal, c'est plus rapide mais je me retrouve face à un probleme:

Je veux en fait importer des heures au format: hh:mm, par exemple A1 = "16:00"
Seulement ADO m'importe ce format la: A1 = "01/01/1904 16:00:00" ce qui fait que certaines de mes formules de calcul d'heure ne fonctionne plus.
Y a t'il une solution ?

Voici mon code pour la requete ADO:

Code:
'TEST DE RECUPERATION AVEC LA METHODE ADO en l'utilisant comme fonction
Sub RecupDonneADO(vDir, vFile, vCellSRC, vCellDEST)
    Dim Source As ADODB.Connection
    Dim Rst As ADODB.Recordset
    Dim ADOCommand As ADODB.Command
      
                
    Set Source = New ADODB.Connection
    Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & vDir & "\" & vFile & ";Extended Properties=""Excel 8.0;;"";"
                
    Set ADOCommand = New ADODB.Command
    With ADOCommand
        .ActiveConnection = Source
        .CommandText = "SELECT * FROM [" & "SAISIE$" & vCellSRC & "]"
    End With
                  
    Set Rst = New ADODB.Recordset
    Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
                  
    Set Rst = Source.Execute("[" & "SAISIE$" & vCellSRC & "]")
     
    Sheets("Données").Range(vCellDEST).CopyFromRecordset Rst
            
    Rst.Close
    Source.Close
    Set Source = Nothing
    Set Rst = Nothing
    Set ADOCommand = Nothing
End Sub

Merci à vous !
 

Tok-Ra

XLDnaute Junior
Re : Récupération des plusieurs plages de données, classeur fermé

Bonjour le forum !
Bon bah je ne trouve vraiment pas !
Je me casse la tete depuis hier soir, si quelqu'un aurait une piste je suis preneur !
Merci à vous ;)
 

Tok-Ra

XLDnaute Junior
Re : Récupération des plusieurs plages de données, classeur fermé

Re le forum !
Bon j'ai toujours rien trouvé !
J'ai une question:

N'y a t'il pas une solution avec ADO afin de récuperer uniquement la valeur de la cellule source ? Car ma requete ajoute une date et c'est toujours la même soit "01/01/1904 20:00:00" or, mon fichier source ne contient que des heures, soit: "20:00".
La j'avou que je bloque :(

Merci a vous
 

Tok-Ra

XLDnaute Junior
Re : Récupération des plusieurs plages de données, classeur fermé

re-bonjour
Bon bah j'ai testé toutes les solution et la je seche vraiment !
J'ai sérieusement besoin d'aide, si quelqu'un pouvait se pencher sur mon probleme !
Merci à vous !
 

Tok-Ra

XLDnaute Junior
Re : Récupération des plusieurs plages de données, classeur fermé

Bonsoir le forum, bonsoir Michel
Alors, oui en effet, j'ai essayé, mais rien n'y fait.

Je vais tenter d'etre plus explicite:
- La cellule du fichier source contient "16:00"
- J'effectue ma requete ADO qui se passe sans probleme.
- La cellule de destination affiche aussi "16:00" mais lorsque que je clique dessus, dans la barre de formule, je vois: "01/01/1904 16:00:00"

Or, comme j'utilise des formule pour calculer le travail de nuit, je me retrouve avec une heure de debut le 01/01/1904 à 19:00 et une heure de fin à 3:00 mais toujours avec la même date, du coup, je me retrouve en heure négative et forcement, ca marche pas !

Donc j'aimerais qu'avec ma requete ADO, soit je prend que la valeur heure, soit je retraire ensuite les données de toutes mes cellules pour virer cette fameuse date. Dans tout les cas, je n'y arrive pas et je pense que rajouter un traitement secondaire prendrait plus de temps.
Enfin, bref, je seche completement !
 

Tok-Ra

XLDnaute Junior
Re : Récupération des plusieurs plages de données, classeur fermé

Re re bonsoir,
Bon vu que je n'arrive pas à trouvé de solution, j'ai abandonné l'idée de faire de l'ADO, je fais donc un lien temporaire.
Voici mon code:
Code:
' On vérifie le nombre d'employé et on lance les requetes ADO
Sub Recup_Trame(vDir, vFile, vNombre)
Call Recup_Employe(vDir, vFile)
    If vNombre = "11" Then
        Call RecupDonneTemp(vDir, vFile, "F7:I373", "B10:B376")
        Call RecupDonneTemp(vDir, vFile, "Y7:AB373", "H10:K376")
        Call RecupDonneTemp(vDir, vFile, "AR7:AU373", "N10:Q376")
        Call RecupDonneTemp(vDir, vFile, "BK7:BN373", "T10:W376")
        Call RecupDonneTemp(vDir, vFile, "CD7:CG373", "Z10:AC376")
        Call RecupDonneTemp(vDir, vFile, "CV7:CZ373", "AF10:AI376")
        Call RecupDonneTemp(vDir, vFile, "DP7:DS373", "AL10:AO376")
        Call RecupDonneTemp(vDir, vFile, "EI7:EL373", "AR10:AU376")
        Call RecupDonneTemp(vDir, vFile, "FB7:FE373", "AX10:BA376")
        Call RecupDonneTemp(vDir, vFile, "FU7:FX373", "BD10:BG376")
        Call RecupDonneTemp(vDir, vFile, "GN7:GQ373", "B382:E748")
        Sheets("Récapitulatif").Select
        MsgBox ("L'importation des données a été effectuée avec succés !")
    End If
End Sub

Et voici l'importation via lien temporaire:
Code:
'Procédure de récupération des données en utilisant un lien temporaire
Sub RecupDonneTemp(vDir, vFile, vCellSRC, vCellDEST)
    If Fichier_Existe(vDir & "\" & vFile) = False Then
        MsgBox ("Le fichier planning spécifié est introuvable. Veuillez revoir votre configuration !")
        Exit Sub
    End If
    Sheets("Données").Select
    Range(vCellDEST).FormulaArray = "='" & vDir & "\[" & vFile & "]" & "SAISIE" & "'!" & vCellSRC
    Dim t(), i As Integer, j As Integer
    t = Range(vCellDEST)
        For i = LBound(t, 1) To UBound(t, 1)
            For j = LBound(t, 2) To UBound(t, 2)
                If t(i, j) = 0 Then t(i, j) = ""
            Next j
        Next i
    Range(vCellDEST) = t
End Sub

Merci à ce forum pour tout l'aide apporté depuis le début du projet !!


@ bientot pour de nouvelles aventures :D
 

Discussions similaires

Réponses
11
Affichages
277
Réponses
7
Affichages
306

Statistiques des forums

Discussions
311 999
Messages
2 084 463
Membres
102 581
dernier inscrit
Michou