Vba excel : importer données.

Fermé
Juliette92 - Modifié par Juliette92 le 28/04/2010 à 09:34
 Juliette92 - 28 avril 2010 à 11:14
Bonjour à tous,

Je débute en Vba excel et je suis en train de créer moi même un petit fichier. Mon premier code est fait mais sans que je ne trouve où se trouve le problème, tout ne fonctionne pas comme prévu.
Je vous montre mon code :

En fait je souhaiterais à l'ouverture effacer le tableau existant (cela marche), importer les données de deux autres fichiers excel (cela marche) et d'aller chercher dans un des deux fichiers des données qui complètent la liste importée. Si quelqu'un voit où peut se trouver l'erreur, je suis preneur !!!


Private Sub Workbook_Open()

Workbooks("Risques Dailly.xls").Sheets("Feuil1").Range("A3:T10000").ClearContents

Workbooks.Open "z:\mes documents\Dailly X\Classeur Commun X.xls"

With Workbooks("Classeur Commun X.xls")

derliga = .Sheets("Factures en attente").Range("B30000").End(xlUp).Row
.Sheets("Factures en attente").Range(.Sheets("Factures en attente").Cells(2, 1), .Sheets("Factures en attente").Cells(derliga, 20)).Copy Workbooks("Risques Dailly.xls").Sheets("Feuil1").Range("A3")
End With

Workbooks.Open "z:\mes documents\Dailly X\IAR Commun X.xls"

derlign = Workbooks("IAR Commun X.xls").Sheets("IAR en attente").Range("B30000").End(xlUp).Row

If derlign <> 1 Then
derligne = Workbooks("Risques Dailly.xls").Sheets("Feuil1").Range("B30000").End(xlUp).Row
derligne = derligne + 1
With Workbooks("IAR Commun X.xls")
.Sheets("IAR en attente").Range(.Sheets("IAR en attente").Cells(2, 1), .Sheets("IAR en attente").Cells(derlign, 20)).Copy Workbooks("Risques Dailly.xls").Sheets("Feuil1").Range("A" & derligne)
End With
Workbooks("IAR Commun X.xls").Close
End If

If derlign = 1 Then
Workbooks("IAR Commun X.xls").Save
Workbooks("IAR Commun X.xls").Close
Call Procédure1
End If


Call Procédure1
Workbooks("Classeur Commun X").Save
Workbooks("Classeur Commun X").Close
End Sub

Private Sub Procédure1()

AA = Feuil1.Range("B30000").End(xlUp).Row

BB = Feuil1.Range("Q" & AA).End(xlUp).Row

If BB = 2 Then
Exit Sub
End If

If BB > 2 Then
cherche = Range("C" & BB).Value
CC = Workbooks("Classeur Commun X.xls").Sheets("Clients").Cells.Find(what:=cherche, LookIn:=xlValues, lookat:=xlWhole, searchorder:=xlNext).Row
Range("L" & BB) = Workbooks("Classeur Commun X.xls").Sheets("Clients").Range("P" & CC).Value
Range("M" & BB) = Workbooks("Classeur Commun X.xls").Sheets("Clients").Range("H" & CC).Value
Range("N" & BB) = Workbooks("Classeur Commun X.xls").Sheets("Clients").Range("F" & CC).Value
Range("P" & BB) = Workbooks("Classeur Commun X.xls").Sheets("Clients").Range("K" & CC).Value
Range("Q" & BB) = Workbooks("Classeur Commun X.xls").Sheets("Clients").Range("Q" & CC).Value
Call Procédure1
End If

cherche = Range("C" & BB).Value
CC = Workbooks("Classeur Commun X.xls").Sheets("Clients").Cells.Find(what:=cherche, LookIn:=xlValues, lookat:=xlWhole, searchorder:=xlNext).Row

Range("L" & BB) = Workbooks("Classeur Commun X.xls").Sheets("Clients").Range("P" & CC).Value
Range("M" & BB) = Workbooks("Classeur Commun X.xls").Sheets("Clients").Range("H" & CC).Value
Range("N" & BB) = Workbooks("Classeur Commun X.xls").Sheets("Clients").Range("F" & CC).Value
Range("P" & BB) = Workbooks("Classeur Commun X.xls").Sheets("Clients").Range("K" & CC).Value
Range("Q" & BB) = Workbooks("Classeur Commun X.xls").Sheets("Clients").Range("Q" & CC).Value

Call Procédure1

End Sub




Merci d'avance à tout ceux qui s'attarderont sur mon problème.

A voir également:

2 réponses

Je m'apercois en travaillant dessus que ma question est bien confuse tout comme mon code alors après avoir apporter quelques modifications je vais poser une question plus simple :

Si je connais ma première ligne (3) et ma dernière (AA) comment faire la procédure suivante pour toutes les lignes comprises dans cette intervalle ?

:

cherche = Range("C" & BB).Value
CC = Workbooks("Classeur Commun X.xls").Sheets("Clients").Cells.Find(what:=cherche, LookIn:=xlValues, lookat:=xlWhole, searchorder:=xlNext).Row
Range("L" & BB) = Workbooks("Classeur Commun X.xls").Sheets("Clients").Range("P" & CC).Value
Range("M" & BB) = Workbooks("Classeur Commun X.xls").Sheets("Clients").Range("H" & CC).Value
Range("N" & BB) = Workbooks("Classeur Commun X.xls").Sheets("Clients").Range("F" & CC).Value
Range("P" & BB) = Workbooks("Classeur Commun X.xls").Sheets("Clients").Range("K" & CC).Value
Range("Q" & BB) = Workbooks("Classeur Commun X.xls").Sheets("Clients").Range("Q" & CC).Value


Merci
0
Malheureusement je pensais que For i marcherait mais il ne se passe rien... j'ai vraiment besoin d'aide. Si quelqu'un a une idée de ce qui ne fonctionne pas dans ce code. Je suis vraiment embêtée... Merci de votre aide

AA = Workbooks("Risques Dailly.xls").Sheets("Feuil1").Range("B30000").End(xlUp).Row

For i = 3 To AA

cherche = Range("C" & i).Value
CC = Workbooks("Classeur Commun X.xls").Sheets("Clients").Cells.Find(what:=cherche, LookIn:=xlValues, lookat:=xlWhole, searchorder:=xlNext).Row
Range("L" & i) = Workbooks("Classeur Commun X.xls").Sheets("Clients").Range("P" & CC).Value
Range("M" & i) = Workbooks("Classeur Commun X.xls").Sheets("Clients").Range("H" & CC).Value
Range("N" & i) = Workbooks("Classeur Commun X.xls").Sheets("Clients").Range("F" & CC).Value
Range("P" & i) = Workbooks("Classeur Commun X.xls").Sheets("Clients").Range("K" & CC).Value
Range("Q" & i) = Workbooks("Classeur Commun X.xls").Sheets("Clients").Range("Q" & CC).Value
Next i
0