XL 2010 Recuperation de données

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

philmaure

XLDnaute Impliqué
bonjour,

chaque jour je dois récupérer les donnes de J et J-1 de 2 colonnes.

Je sais identifier la dernière cellule vide de la colonne avec :

Range("u65536").End(xlUp).Offset(1, 0).Select

comment copier les 4 valeurs dont j'ai besoin pour les coller dans l'onglet destinataires de mon fichier test.


Merci pour votre aide

Cdlt
Philmaure
 

Pièces jointes

Salut,

Voilà qui doit faire ce que tu veux :
VB:
Sub lkjm()
Set rec = Sheets("Recap J")
Set det = Sheets("destinataires")
Do
If IsNumeric(rec.Range("u65536").End(xlUp).Offset(i, 0)) Then
    det.Range("a1") = rec.Range("u65536").End(xlUp).Offset(i - 1, -2)
    det.Range("a2") = rec.Range("u65536").End(xlUp).Offset(i, -2)
    det.Range("b1") = rec.Range("u65536").End(xlUp).Offset(i - 1, 0)
    det.Range("b2") = rec.Range("u65536").End(xlUp).Offset(i, 0)
    Exit Sub
End If
i = i - 1
Loop
End Sub

++
 

Pièces jointes

Of course !!

Petite modif :
VB:
Sub lkjm()
Application.ScreenUpdating = False
chemin = ThisWorkbook.Path & "\"

entree = ThisWorkbook.Name
sortie = "toto.xlsx"

Workbooks.Open (chemin & sortie)
Set rec = Workbooks(entree).Sheets("Recap J")
Set det = Workbooks(sortie).Sheets("destinataires")
Do
If IsNumeric(rec.Range("u65536").End(xlUp).Offset(i, 0)) Then
    det.Range("a1") = rec.Range("u65536").End(xlUp).Offset(i - 1, -2)
    det.Range("a2") = rec.Range("u65536").End(xlUp).Offset(i, -2)
    det.Range("b1") = rec.Range("u65536").End(xlUp).Offset(i - 1, 0)
    det.Range("b2") = rec.Range("u65536").End(xlUp).Offset(i, 0)
    Workbooks("toto.xlsx").Close True
    Exit Sub
End If
i = i - 1
Loop

End Sub

A adapter selon besoin
 
re,

j'essaie d'appeler une autre macro à la fin de celle -ci mais cela ne fonctionne pas. Je crois que c'est du à "Exit sub"

Ma ligne de commande est : call macro 6

Avez vous une solution pour que cela soit possible.

Merci pour votre aide
Cdlt
Philippe
 
Peux-tu coller le fichier et/ou le bout de code ??

SInon, peut etre ainsi :
VB:
Sub lkjm()
Application.ScreenUpdating = False
chemin = ThisWorkbook.Path & "\"

entree = ThisWorkbook.Name
sortie = "toto.xlsx"

Workbooks.Open (chemin & sortie)
Set rec = Workbooks(entree).Sheets("Recap J")
Set det = Workbooks(sortie).Sheets("destinataires")
Do
If IsNumeric(rec.Range("u65536").End(xlUp).Offset(i, 0)) Then
    det.Range("a1") = rec.Range("u65536").End(xlUp).Offset(i - 1, -2)
    det.Range("a2") = rec.Range("u65536").End(xlUp).Offset(i, -2)
    det.Range("b1") = rec.Range("u65536").End(xlUp).Offset(i - 1, 0)
    det.Range("b2") = rec.Range("u65536").End(xlUp).Offset(i, 0)
    Workbooks("toto.xlsx").CloseTrue
   Exit Do
EndIf
i = i - 1
Loop

call marco6

EndSub

++
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
343
Réponses
3
Affichages
206
Réponses
4
Affichages
579
Réponses
5
Affichages
551
Réponses
20
Affichages
963
Retour