Copie d'une cellule lors d'un chgt de valeur

nat54

XLDnaute Barbatruc
[RESOLU] Copie d'une cellule lors d'un chgt de valeur

Bonjour,

Je ne trouvais pas de titre explicite, désolée

Mon problème
--> j'ai 64 fichiers (un par entité) dans lesquels un onglet "cdd accroi" (= cdd pour accroissement d'activité) m'intéresse
j'arrive donc à ouvrir le fichier, copier la plage qui m'intéresse et la coller dans...

--> ... un fichier récapitulatif des 64 entités

Cependant ce que je voudrais c'est le N° de l'entité dans la colonne A à chaque chgt d'entité
Ce n° est présent en cellule A2 sur chacun des 64 fichiers

Comment le récupérer et le mettre à chaque chgt d'entité ?

MERCI

mon code actuel et l'erreur est entre ""

Code:
Sub Creer_Base_Accroi()

Application.ScreenUpdating = False  'ne pas voir ce qui se passe à l'écran, diminue besoin mémoire
Application.DisplayAlerts = False

For lgn = 29 To 29   'pour boucler sur les lignes

Sheets("Ref").Select   'on se place sur la feuille de référence
regate = Cells(lgn, 1).Value    'on variabilise, indic = cellule ligne de la boucle, colonne 1


Workbooks.Open ("U:\PUBLIC\DOTC\DFI\CGC\Commun\Remontee Outil FTV3\07_2006\" & regate & ".xls")
Sheets("CDD accroi").Select
Range("A9:G200").Select
Selection.Copy

Windows("CDD_test.xls").Activate
Sheets("Base_Accroi").Select
  If [a3] = "" Then Range("b3").Activate Else Selection.End(xlDown).Select
    ActiveCell.Activate
    ActiveCell.Offset(1, 0).Activate
      ActiveSheet.Paste
   Range("a1").Select
   
   '' Windows(regate & ".xls").Activate
   '' Range("a2").Select
   '' Selection.Copy
   '' Windows("CDD_test.xls").Activate
   '' ActiveCell.Activate
   ''   ActiveCell.Offset(0, -1).Activate

   
     ActiveSheet.Paste
   
   
     Range(" a1 ").Select

Workbooks(regate & ".xls").Close  'fermer le fichier

Next lgn   ' on continue sur 2nd, 3èm.. indicateur (boucle)

Application.ScreenUpdating = True

End Sub
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Copie d'une cellule lors d'un chgt de valeur

Bonjour Nat

J ai pas tout compris de ton problème, mais si tu veux copier la cellule A2 d un classeur vers un autre tu peux peut etre t'aider de la ligne de code ci dessous a mettre dans ta boucle !!!

Workbooks("classeur4").Activate

Range("A2").Copy Destination:=Workbooks("classeur3").Worksheets("Feuil1").Range("A3")

Bonne apres midi

@+
 

nat54

XLDnaute Barbatruc
Re : Copie d'une cellule lors d'un chgt de valeur

En fait, je n'ai pas de cellule de destination "fixe"
puisqu'il peut avoir 10 lignes concernant l'entité 1
puis 15 concernant l'entité 2
3 concernant l'entité 3
...
 

flo2002

XLDnaute Impliqué
Re : Copie d'une cellule lors d'un chgt de valeur

bonjour,
bien que je n'ai pas tout compris je propose lol sur la base de Pierrot de mettre la valeur en fin de colonne ou l'on a copier l'information:

ainsi:

Workbooks("classeur4").Activate

Range("A2").Copy Destination:=Workbooks("classeur3").Worksheets("Fe uil1").Range(variable)

reste à definir variable comme etant la derniere ligne de ta colonne (qui elle aussi est variable?)

voila si cela peut t'avoir aider...

désolé Pierrot pas rafraichit assez vite!
 

nat54

XLDnaute Barbatruc
Re : Copie d'une cellule lors d'un chgt de valeur

la colonne peut être soit la colonne A soit la colonne G, peu m'importe
donc elle est fixe

pour prendre la dernière ligne, j'ai essayé avec selection.end(xlDown)
mais je n'y arrive pas :(
 

Pierrot93

XLDnaute Barbatruc
Re : Copie d'une cellule lors d'un chgt de valeur

Re Re Nat

Essaye ce code je l ai modifié légerement

Sub test()
Dim maplage As Range

Workbooks("classeur5").Activate

If Workbooks("classeur6").Worksheets("Feuil1").Range("B3").Value = "" Then
Set maplage = Workbooks("classeur6").Worksheets("Feuil1").Range("B3")
Else
Set maplage = Workbooks("classeur6").Worksheets("Feuil1").Range("B3").End(xlDown).Offset(1, 0)
End If

Range("A2").Copy Destination:=maplage

End Sub


@+
 

flo2002

XLDnaute Impliqué
Re : Copie d'une cellule lors d'un chgt de valeur

re bonjour,


Workbooks("classeur4").Activate

dim variable as long
variable = workbook("tonfichier").sheets("tafeuille").range("A65536").End(xlUp).Row

Range("A2").Copy Destination:=Workbooks("classeur3").Worksheets("Fe uil1").cells(variable, 1) 'pour la colonne A
 

nat54

XLDnaute Barbatruc
Re : Copie d'une cellule lors d'un chgt de valeur

Pierrot93 à dit:
Re Re Nat

Essaye ce code je l ai modifié légerement

Sub test()
Dim maplage As Range

Workbooks("classeur5").Activate

If Workbooks("classeur6").Worksheets("Feuil1").Range("B3").Value = "" Then
Set maplage = Workbooks("classeur6").Worksheets("Feuil1").Range("B3")
Else
Set maplage = Workbooks("classeur6").Worksheets("Feuil1").Range("B3").End(xlDown).Offset(1, 0)
End If

Range("A2").Copy Destination:=maplage

End Sub


@+

Euh classeur5 pour toi c'est la feuille cdd_accroi du fichier de l'entité 1 c'est ca ?
et classeur 6 l'onglet récapitulatif (base_accroi) ?

Il n'y a pas un problème d'activer le classeur5 et ensuite travailler sur le 6 ?
car là ca coince
 

Pierrot93

XLDnaute Barbatruc
Re : Copie d'une cellule lors d'un chgt de valeur

Re Nat

Classeur5 est le classeur sur lequel se trouve tes données a copier, et classeur6 est le classeur de destination, non il n y a pas de problème a copier dans un classeur actif et les envoyer vers un autre classeur sans l activer au préalable du moment que l on spécifie bien le nom du classeur le nom de la feuille.

A noter on peu également travailler sur un classeur actif autre par exemple le classeur7 et envoyer le code ci dessous, ca marche aussi.

Workbooks("classeur5").Worksheets("Feuil1").Range("A2").Copy _
Destination:=Workbooks("classeur6").Worksheets("Feuil1").Range("B65536").End(xlUp).Offset(1, 0)

j espère que tu pourras t en sortir.

bonne soirée

@+
 

nat54

XLDnaute Barbatruc
Re : Copie d'une cellule lors d'un chgt de valeur

J'ai toujours un souci : je mets des screenshot, ca aidera peut-être...
(retravailler les fichiers me prendrait trop de temps étant donné nb d'onglets..)

Le fichier-source est le suivant (enfin y'en a 64 comme ca )


Le fichier destination se présente comme suit :



Donc la 1ère boucle marche correctement comme vous le voyez...

Mais les suivantes ne marchent pas ; là j'ai bouclé sur 2 entités :

- pb 1 : décalage de colonne où l'on retrouve les données

- pb 2 : il m'a mangé une ligne de la 1ère entité...

- pb 3 : le n° entité dans le fichier source est une formule ..
donc le 1er marche bien,
='U:\PUBLIC\DOTC\DFI\CGC\Commun\Remontee Outil FTV3\07_2006\[671650.xls]Notice'!H4&" "&'U:\PUBLIC\DOTC\DFI\CGC\Commun\Remontee Outil FTV3\07_2006\[671650.xls]Notice'!I4


mais ensuite le 2nd se décale

='U:\PUBLIC\DOTC\DFI\CGC\Commun\Remontee Outil FTV3\07_2006\[671920.xls]Notice'!H10&" "&'U:\PUBLIC\DOTC\DFI\CGC\Commun\Remontee Outil FTV3\07_2006\[671920.xls]Notice'!I10

pour pallier à cela, il faudrait juste un copier-coller , collage spécial, valeur
mais ca se dit comment en VB ?

MERCI



Le code actuel
Code:
Sub Creer_Base_Accroi()

Application.ScreenUpdating = False  'ne pas voir ce qui se passe à l'écran, diminue besoin mémoire
Application.DisplayAlerts = False


Dim maplage As Range


For lgn = 29 To 30   'pour boucler sur les lignes

Sheets("Ref").Select   'on se place sur la feuille de référence
regate = Cells(lgn, 1).Value    'on variabilise, indic = cellule ligne de la boucle, colonne 1


Workbooks.Open ("U:\PUBLIC\DOTC\DFI\CGC\Commun\Remontee Outil FTV3\07_2006\" & regate & ".xls")
Sheets("CDD accroi").Select
Range("A9:G200").Select
Selection.Copy

Windows("CDD_test.xls").Activate
Sheets("Base_Accroi").Select
  If [a2] = "" Then Range("b1").Activate Else Selection.End(xlDown).Select
    ActiveCell.Activate
    ActiveCell.Offset(1, 0).Activate
      ActiveSheet.Paste
   Range("a1").Select
   
   

Workbooks(regate & ".xls").Activate

If Workbooks("CDD_test.xls").Worksheets("Base_Accroi").Range("a2").Value = "" Then
Set maplage = Workbooks("CDD_test.xls").Worksheets("Base_Accroi").Range("a2")
Else
Set maplage = Workbooks("CDD_test.xls").Worksheets("Base_Accroi").Range("a2").End(xlDown).Offset(1, 0)
End If

Range("A2").Copy Destination:=maplage
   


Workbooks(regate & ".xls").Close  'fermer le fichier

Next lgn   ' on continue sur 2nd, 3èm.. indicateur (boucle)

Application.ScreenUpdating = True

End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Copie d'une cellule lors d'un chgt de valeur

Bonjour Nat

lignes de code ci dessous pour un collage spécial de la cellule A2 du classeur 1 ver la derniere cellule de la colonne b du classeur 2

Workbooks("classeur1").Worksheets("Feuil1").Range("A2").Copy

Workbooks("classeur2").Worksheets("Feuil1").Range("B65536").End(xlUp).Offset(1, 0).PasteSpecial (xlPasteValues)


Bonne journée

@+
 

nat54

XLDnaute Barbatruc
Re : Copie d'une cellule lors d'un chgt de valeur

On s'approche, on s'approche...




le code actuel
Code:
Sub Creer_Base_Accroi()

Application.ScreenUpdating = False  'ne pas voir ce qui se passe à l'écran, diminue besoin mémoire
Application.DisplayAlerts = False


Dim maplage As Range


For lgn = 29 To 30   'pour boucler sur les lignes

Sheets("Ref").Select   'on se place sur la feuille de référence
regate = Cells(lgn, 1).Value    'on variabilise, indic = cellule ligne de la boucle, colonne 1


Workbooks.Open ("U:\PUBLIC\DOTC\DFI\CGC\Commun\Remontee Outil FTV3\07_2006\" & regate & ".xls")
Sheets("CDD accroi").Select
Range("A9:G200").Select
Selection.Copy

Windows("CDD_test.xls").Activate
Sheets("Base_Accroi").Select
Range("b1").Activate
  If [b2] = "" Then Range("b1").Activate Else Selection.End(xlDown).Select
    ActiveCell.Activate
    ActiveCell.Offset(1, 0).Activate
      ActiveSheet.Paste
   Range("a1").Select
   
   
   
Workbooks(regate & ".xls").Worksheets("CDD accroi").Range("A2").Copy
Workbooks("CDD_test.xls").Worksheets("Base_Accroi").Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial (xlPasteValues)




Workbooks(regate & ".xls").Close  'fermer le fichier

Next lgn   ' on continue sur 2nd, 3èm.. indicateur (boucle)

Application.ScreenUpdating = True

End Sub

Le hic vient du xlUp lors de la copie du n° entité
car en fait là avec ce code c'est logique qu'il copie sous le 1er n° de l'entité
moi je voudrais qu'il copie en face de KOSIk, qui est le 1er nom de l'entité Holtzheim

Et je bloque..
MERCI
 

nat54

XLDnaute Barbatruc
Re : Copie d'une cellule lors d'un chgt de valeur

Bon là ca marche mais "à l'envers"
en effet, j'ai le n° entité, sur la dernière ligne correposndant à l'entité

c'est pas bien grave, si je peux toujours automatiquement, étirer chaque nom
entre ses "bornes"
est-ce faisable ?

@+
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 763
Messages
2 091 815
Membres
105 076
dernier inscrit
simeand