Problème au niveau d'une macro d'importation de données.

azertym

XLDnaute Nouveau
Bonjour à tous.

J'utilise une macro me permettant d'aller chercher plusieurs classeurs excel, et d'en importer certaines de leur données dans un nouveau classeur.

Tout fonctionne sauf qu'a certains endroit je rencontre un problème.
J'utilise 2 codes pour importer les données :

Le premier qui fonctionne très bien :
Code:
Sub CopyExactitudes(classeurEntree As Workbook)
    ' 600T
    Call CopyExactitude(classeurEntree, "A", "I28")
    ' 1200T
    Call CopyExactitude(classeurEntree, "B", "I48")
    ' 1800T
    Call CopyExactitude(classeurEntree, "C", "I68")
    ' 2400T
    Call CopyExactitude(classeurEntree, "D", "I88")
End Sub

Sub CopyExactitude(classeurEntree As Workbook, destinationColumn As String, srcRange As String)
    Dim source As Worksheet, destination As Worksheet
    Set source = classeurEntree.Worksheets("Exactitude")
    Set destination = classeurSortie.Worksheets("Exactitude")

    destination.Range(destinationColumn & destination.Range(destinationColumn & destination.Rows.Count).End(xlUp).Row + 1) = source.Range(srcRange).Value
    
    ' Import date
    destination.Range("E" & destination.Range(destinationColumn & source.Rows.Count).End(xlUp).Row) = Now
    ' Source file
    destination.Range("F" & destination.Range(destinationColumn & source.Rows.Count).End(xlUp).Row) = classeurEntree.Path & "\" & classeurEntree.Name
End Sub
Et le deuxième qui fonctionne pas du tout car il m'importe 2 fois les données d'un même classeur.
Code:
Sub CopyCutOffs(classeurEntree As Workbook)
    ' 532
    Call CopyCutOff(classeurEntree, "Laser1", "A")
    ' 638
    Call CopyCutOff(classeurEntree, "Laser2", "B")
    ' 785
    Call CopyCutOff(classeurEntree, "Laser3", "C")
End Sub

Sub CopyCutOff(classeurEntree As Workbook, laser As String, destinationColumn As String)
    Dim rowNumber As Range
    Dim source As Worksheet, destination As Worksheet

    Set source = classeurEntree.Worksheets("Cut_Off")
    Set destination = classeurSortie.Worksheets("Cut_Off")

    ' Numero de ligne du lambda correspondant
    Set rowNumber = source.Range("B:B").Cells.Find(What:=laser)

    destination.Range(destinationColumn & destination.Range(destinationColumn & source.Rows.Count).End(xlUp).Row + 1) = source.Range("C" & rowNumber.Row).Value
    
    ' Import date
    destination.Range("D" & destination.Range(destinationColumn & source.Rows.Count).End(xlUp).Row + 1) = Now
    ' Source file
    destination.Range("E" & destination.Range(destinationColumn & source.Rows.Count).End(xlUp).Row + 1) = classeurEntree.Path & "\" & classeurEntree.Name
End Sub
Le problème se trouve donc à la ligne :
Code:
 ' Numero de ligne du lambda correspondant
    Set rowNumber = source.Range("B:B").Cells.Find(What:=laser)

    destination.Range(destinationColumn & destination.Range(destinationColumn & source.Rows.Count).End(xlUp).Row + 1) = source.Range("C" & rowNumber.Row).Value
Pouvez vous me dire pourquoi ? Je ne trouve pas du tout ou est le problème :s

Merci d'avance.
 

BrunoM45

XLDnaute Barbatruc
Re : Problème au niveau d'une macro d'importation de données.

Bonjour azertym

Te dire pourquoi, oui tout de suite ;)
Si le terme "laser" n'est pas une variable, il faut le mettre entre guillemets

Code:
' Numero de ligne du lambda correspondant    Set rowNumber = source.Range("B:B").Cells.Find(What:="laser")
A+
 

Discussions similaires


Haut Bas