Problème macro pour copier plage cellule selon valeur à la suite d'une liste

tim_so

XLDnaute Nouveau
Bonjour,

J'ai bien avancé avec vos réponses d'hier mais je souhaite allez plus loin dans toutes mes macros et du coup j'ai encore besoin de votre aide.

J'ai deux fichiers et je souhaite copier une plage de cellule "S7:aa84" de mon premier classeur vers un autre classeur. Mais pour compliquer un peu les choses, il y a des conditions : pour la plage de cellule il ne doit me copier les cellules que si dans ma colonne "d" il n'y a rien d'écrit et autre condition, il doit coller les valeurs à la suite d'une liste (cette liste va augmenter tous les mois).

J'ai réussi à aller jusqu'à copier la plage de cellule (j'ai réutilisé le code proposé hier par JNP, il y avait peut-être plus simple mais ça fonctionne comme ça !!)

Le classeur vers lequel je souhaite coller n'est pas ouvert, donc je lui demande de me l'ouvrir, ça c'est ok aussi et il se positionne même sur la première ligne non vide.

Mais je bloque pour le collage spécial. ça fait un moment que je suis dessus et là j'ai besoin d'aide.

Voici mon code :


Code:
Sub copy()
'
' copy PLAGE CELLULE
'

Dim n As Integer, plage As Range
 Application.ScreenUpdating = False
For n = 1 To Range("d65536").End(xlUp).Row
       If Range("d" & n) <> "" Then
        If plage Is Nothing Then
            Set plage = Rows(n)
        Else
            Set plage = Union(Rows(n), plage)
        End If
    End If
Next n
    Range("S7:AA" & n - 1).copy
    Application.ScreenUpdating = True
    
    ChDir "C:\Documents and Settings\DIM\Bureau"
    Workbooks.Open Filename:="C:\Documents and Settings\DIM\Bureau\test.xlsx"
          
    Sheets("ok").Range("A65536").End(xlUp).Offset(1, 0).selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
       
End Sub

Évidemment je bloque sur la dernière partie.

Merci d'avance de ce que vous pourrez faire

Je vous joins mon fichier avec ma macro, j'ai pas mis le deuxième classeur qui n'est qu'une simple liste.


So
 

Pièces jointes

  • Fichier de calcul MO pour excel downloads2.xlsm
    126.8 KB · Affichages: 117

JNP

XLDnaute Barbatruc
Re : Problème macro pour copier plage cellule selon valeur à la suite d'une liste

Re :),
Le ChDir ne sert à rien :p...
Code:
Sub copy()
'
' copy PLAGE CELLULE
'
Dim n As Integer, plage As Range
 Application.ScreenUpdating = False
For n = 1 To Range("d65536").End(xlUp).Row
       If Range("d" & n) <> "" Then
        If plage Is Nothing Then
            Set plage = Rows(n)
        Else
            Set plage = Union(Rows(n), plage)
        End If
    End If
Next n
Intersect(Range("S7:AA" & n), plage).copy
Workbooks.Open Filename:="C:\Documents and Settings\DIM\Bureau\test.xlsx"
Sheets("ok").Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Workbooks("test.xlsx").Save
Workbooks("test.xlsx").Close
Application.ScreenUpdating = True
End Sub
Bonne soirée :cool:
 

Discussions similaires

Statistiques des forums

Discussions
311 726
Messages
2 081 955
Membres
101 852
dernier inscrit
dthi16088