Insertion cellules copiées

stephane.quinquis

XLDnaute Junior
Bonjour le forum,
J'ai deux classeurs: inventaire production exemple et inventaire pasteurisation exemple. Je souhaite importer des données du classuer inventaire production exemple dans mon classeur inventaire pasteurisation exemple.
Avec ma macro je veux effectuer les opérations suivantes:
  • Sélectionner un paramètre sur le poids(cellules non vides) dans le classeur inventaire production exemple
  • Sélectionner un paramètre sur envoi pasto(cellules vides) dans le classeur inventaire production exemple
  • Copier les cellules visibles à partir de la ligne 7 de mon tableau du classeur production exemple
  • Insérer les cellules copiées dans un autre tableau sur l' autre classeur inventaire pasteurisation exemple
  • Désactiver les sélections de filtre automatique du classeur inventaire production exemple
  • Copier des cellules d'une colonne vers une autre colonne dans le classeur inventaire production exemple

Mon problème se situe au niveau de l'insertion des cellules copiées. J'aimerai que la macro compte le nombre de cellules visibles remplies de données à partir de la ligne7 et les colle à partir de la ligne 8 de l'autre classeur.
Deux problématiques:
le nombre de lignes à insérer est variable
il ne faut pas écraser les précèdentes données qui ont été insérés

J'ai essayé le code suivant mais il ne fonctionne pas.


Code:
Sub testcopie()
'
' testcopie Macro
' Macro enregistrée le 26/04/2010 par quinquis
'
    Windows("inventaire production exemple.xls").Activate
    Selection.AutoFilter Field:=4, Criteria1:="<>"
    ActiveWindow.SmallScroll ToRight:=4
    Selection.AutoFilter Field:=6, Criteria1:="="
    ActiveWindow.SmallScroll ToRight:=-4
   [B] Range("A7:F1000").SpecialCells(xlCellTypeVisible).Select
    Windows("inventaire pasteurisation exemple.xls").Activate
    Range("A7").Select
    Selection.Insert Shift:=xlDown[/B]
    Windows("inventaire production exemple.xls").Activate
    ActiveWindow.SmallScroll ToRight:=4
    Selection.AutoFilter Field:=6
    ActiveWindow.SmallScroll ToRight:=-4
    Selection.AutoFilter Field:=4
    Range("D7:D1000").SpecialCells(xlCellTypeVisible).Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveWindow.SmallScroll ToRight:=5
    Range("F7").Select
    ActiveSheet.Paste
    ActiveWorkbook.Save
    ActiveWindow.Close
End Sub
On m'a également conseiller d'utiliser le code suivant:
Code:
Feuil1.Rows(8).Resize(Selection.Count).Insert Shift:=xlDown

Mais je n'arrive pas à l'utiliser non plus.

inventaire pasteurisation exemple
Cijoint.fr - Service gratuit de dépôt de fichiers

Merci de votre aide.
 

Pièces jointes

  • inventaire production exemple.xls
    31.5 KB · Affichages: 96
  • inventaire production exemple.xls
    31.5 KB · Affichages: 105
  • inventaire production exemple.xls
    31.5 KB · Affichages: 104

stephane.quinquis

XLDnaute Junior
Re : Insertion cellules copiées

Rebonjour,

Je viens de trouver d'où vient probablement mon problème. L'insertion de cellules copiées semblent ne pas être possible lorsqu'il y a des cellules non contigues comme avec la sélection de filtres automatiques.
Quelqu'un a-t-il une solution??

Merci
 

stephane.quinquis

XLDnaute Junior
Re : Insertion cellules copiées

Bonjour le forum, bonjour paou, bonjour kjin

J'ai remis des fichiers exemples.
Avec ma macro, j'arrive à copier coller les données les unes à la suite des autres sur le tableau inventaire pasteurisation.

J'aurai souhaité faire un insertion cellules copiées en début de tableau inventaire pasteurisation c'est-à-dire en ligne7 MAIS avec des filtres autos déjà sélectionnés cela semble impossible.

Je me demande s'il n'y a pas moyen de contourner la chose en comptant le nombre de lignes visibles après le filtrage automatique enclenché dans le classeur inventaire production et d'insérer le nombre de lignes visibles comptés à partir de la ligne 7 de mon tableau inventaire pasteurisation.

Je vous joint les exemples dans ce fichier.
Code:
Sub testcopier()
'
' testcopier Macro
' Macro enregistrée le 05/05/2010 par quinquis

    Workbooks("inventaire production exemple.xls").Activate 'active l'inventaire production'
    Selection.AutoFilter Field:=4, Criteria1:="<>" 'sélectionne les cellules non vides dans le critère poids'
    ActiveWindow.SmallScroll ToRight:=4
    Selection.AutoFilter Field:=6, Criteria1:="=" 'sélectionne les cellules vides dans le critère envoi vers pasteurisation'
    ActiveWindow.SmallScroll ToRight:=-4
    Range("A7:F1000").SpecialCells(xlCellTypeVisible).Select 'sélectionne les cellules visibles dans plage de données de A7 à M1000'
    Selection.Copy
    Workbooks("inventaire pasteurisation exemple.xls").Activate
    Range("A65535").End(xlUp).Offset(1, 0).Select
    'Cells(65536, 1).End(xlUp).Select
    ActiveSheet.Paste
    Workbooks("inventaire production exemple.xls").Activate 'sélectionne l'inventaire production'
    ActiveWindow.SmallScroll ToRight:=4 'désélectionne le filtre sur l'envoi vers pasto'
    Selection.AutoFilter Field:=6
    ActiveWindow.SmallScroll ToRight:=-4 'désélectionne le filtre sur le poids'
    Selection.AutoFilter Field:=4
    Range("D7:D1000").SpecialCells(xlCellTypeVisible).Select 'sélectionne les cellules visibles dans la colonne D'
    Application.CutCopyMode = False
    Selection.Copy 'fait une copie'
    ActiveWindow.SmallScroll ToRight:=5
    Range("F7").Select
    ActiveSheet.Paste 'collage à partir de la cellule N7'
    ActiveWorkbook.Save 'Sauve les données de l'inventaire production'
    ActiveWindow.Close 'ferme l'inventaire production'

End Sub

Merci

Inventaire pasteurisation
Cijoint.fr - Service gratuit de dépôt de fichiers

Inventaire production avec pièce jointe
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 370
Messages
2 087 693
Membres
103 641
dernier inscrit
anouarkecita2