BP avec c.Offset, svp

kolivier

XLDnaute Occasionnel
Bonjour à tout le Forum.
Etant donné que j'ai toujours trouvé d'excellentes réponses sur ce Fourm, je souhaiterai retenter l'opération.

Donc mon PB est le suivant :
A partir d'une macro excel je demande l'ouverture d'un autre fichier et je lui demande de mettre sur le premier fichier EXCEL les infos presentes sur le second (celui que j'ai ouvert).
Jusque la tout fonctionne.
Le second fichier contient des lignes avec par exemple le NOM le prenom et l'age

ex de la seconde feuille

cellule/colonnes A B C
1 NOM1 PRENOM1 AGE1
2 NOM2 PRENOM2 AGE2
3 NOM3 PRENOM3 AGE3

Mon PB est que mon programme plante des que je demande de me renvoyer les infos de la seconde ligne et les suivantes.
J'aurai donc besoin d'un gentil coup de pouce s'il vous plait.
Voila mon bout de code :


Workbooks.Open ('second_fichier.xls')
Set classeurDestination = Workbooks('second_fichier.xls')
Set feuilleDestination = classeurDestination.Worksheets('feuille1')
Dim c As Range
Set c = feuilleDestination.Range('A:A')
booltrouve = True
impscore.Range('N1').Value = c.Offset(0, 0).Value
impscore.Range('P1').Value = c.Offset(0, 1).Value
impscore.Range('A1').Value = c.Offset(0, 2).Value

impscore.Range('N2').Value = c.Offset(1, 0).Value
impscore.Range('P2').Value = c.Offset(1, 1).Value
impscore.Range('A2').Value = c.Offset(1, 2).Value

etc...

P.S (1) je me demande si ce n'est pas le codage du c.Offset(1, 0).Value et suivant qui ne fonctionnent pas.

P.S(2) les cellulle N1, P1, etc.. correspondent aux cellules de la mcro initiale dans lesquelles on devrait retrouver le Nom1, le Prenom2, etc...

Merci de votre aide
 

Hervé

XLDnaute Barbatruc
re olivier

tu pourrais essayer ce type de boucle, à adapter bien sur.


Dim MOIS1, MOIS
Dim cell As Range
Dim j As Integer, ligne As Integer

ligne = 10
MOIS = imp1.Range('MOIS')
MOIS1 = imp1.Range('MOISAUJOURDHUI')

If MOIS <> MOIS1 Then
MsgBox ('VOUS DEVEZ METTRE A JOUR')
Workbooks.
Open ('2.xls')
Set classeurDestination = Workbooks('2.xls')
Set feuilledestination = classeurDestination.Worksheets('classement')
Dim c As Range
Set c = feuilledestination.Range('A:A')
booltrouve =
True

For Each cell In feuilledestination.Range('A1:a' & feuilledestination.Range('a65536').End(xlUp).Row)
&nbsp; &nbsp; &nbsp; &nbsp;
For j = 0 To 2
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; imp1.Cells(ligne, j + 3) = cell.Offset(0, j)
&nbsp; &nbsp; &nbsp; &nbsp;
Next j
&nbsp; &nbsp; &nbsp; &nbsp; ligne = ligne + 2
Next cell

salut
 

kolivier

XLDnaute Occasionnel
Merci beaucoup HERVE, c'est pas tout a fait ce que je voulais initialement mais j'ai laissé tomber et j'utilise plutot ton programme qui en l'adaptant que trés térs légerement me donne un resultat identique.

ETRE UN PRO CA NE S'INVENTE PAS = HERVE

Bonne soirée au FORUM
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 393
Messages
2 088 006
Membres
103 697
dernier inscrit
BOUZOUALEGH