RECUPERATION des données

Bonjour,

je cherche a écrire une macro qui au moment de venir coller des valeur de données, dans une plage de valeur définit (mais variable mise a jours), vas les collées a partir de la 1ere colonne vide.

J'ai écris cela pour le moment mais au moment du copiage des données, j'ai un problème.

Il faudrait que mon algo copie mon tableau a partir de la premiere colonne vide de ma plage de valeur: "C17:NC24"

alors que ici il copie directement a partir d'une cellule définit

MERCI D'avance

Sub RecuperationDataFichierabs()
'Déclaration des variables
Dim ListeFichier As Variant
Dim MonClasseur As Workbook
'On efface les anciennes donnés
'appliquer le module1
ActiveSheet.Range("D25").CurrentRegion.Clear
'On récupère le fichier des données a copier
ListeFichier = Application.GetOpenFilename(Title:="Sélectionnez votre classeur", filefilter:="Fichiers Excel(*.xls*),*xls*", ButtonText:="Cliquez")
'Prévoir le cas du bouton annuler
If ListeFichier <> False Then
'On affecte le fichier sélectionné
Set MonClasseur = Application.Workbooks.Open(ListeFichier)
'On copie les données dans la feuille du classeur sélectionner
MonClasseur.Sheets(1).Range("G181").CurrentRegion.Copy

'On colle les données dans le feuille active , le collage devras etre adapté a la nouvelle planche de donnée
'commencer le copiage a partir de de la première colonne vide dans le tableau des

ThisWorkbook.ActiveSheet.Range("HG20").PasteSpecial xlPasteValues

'On ferme le classeur1
MonClasseur.Close
End If

End Sub

Bonjour Riri, bonjour le forum,

Il est plus facile de récupérer ou de lire le code quand il est entre les balises </> et le fichier en pièce jointe est toujours apprécié. Il nous évite de recréer le contexte de ton problème pour tester une éventuelle solution...

Essaie comme ça :

Sub RecuperationDataFichierabs()
'déclaration des varaibles
Dim CD As Workbook
Dim OD As Worksheet
Dim DL As Long
Dim PL As Long
Dim ListeFichier As Variant
Dim CS As Workbook
Dim OS As Worksheet
Dim C As Range
Dim DEST As Range

Application.ScreenUpdating = False
Set CD = ThisWorkbook 'définit le classeur destination CD
Set OD = CD.ActiveSheet 'définit le classeur destination
'appliquer le module1
'OD.Range("D25").CurrentRegion.Clear 'sans le contexte difficile de comprendre ?
ListeFichier = Application.GetOpenFilename(Title:="Sélectionnez votre classeur", filefilter:="Fichiers Excel(*.xls*),*xls*", ButtonText:="Cliquez")
If ListeFichier <> False Then
    Set CS = Application.Workbooks.Open(ListeFichier) 'définit la classeur source
    Set OS = CS.Worksheets(1) 'de'finit l'onglet source
End If
For Each C In OD.Range("C17:NC24").Columns 'boucle sur toutes les colonne C de la plage C17:NC24
    If Application.WorksheetFunction.CountBlank(C) = 8 Then 'condition : si la colonne contient 8 cellules vides
        Set DEST = Cells(17, C.Column) 'définit la cellule de destination DEST
        Exit For 'sort de la boucle
    End If 'fin de la condition
Next C
OS.Range("G181").CurrentRegion.Copy 'copie
DEST.PasteSpecial xlPasteValues 'colle dans DEST
CS.Close False 'ferme le classeur source sans enregistrer
End Sub

J'ai trouvé la ligne :

OD.Range("D25").CurrentRegion.Clear

assez incohérente voire dangereuse car s'il y a des données C24:NC24 elle seront effacées jusqu à la premier colonne vide !?... Du coup de l'ai désactivée dans mon code...

Bonjour riri180299 et

Une petite présentation ICI serait la bienvenue

Si vous ne l'avez pas encore fait, je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER]
qui vous aidera dans vos demandes et réponses sur ce forum et notamment : code à mettre entre balises avec le bouton </>

Ainsi que sur les fonctionnalités (Nouveau Forum au bas de page notamment)

Merci de votre participation

Cordialement

merci cela m'a beaucoup aidé.

Rechercher des sujets similaires à "recuperation donnees"