Copie d'une cellule lors d'un chgt de valeur - VB/VBA/VBS - Programmation
Marsh Posté le 04-08-2006 à 09:06:32
J'ai un peu avancé mais ce n'est pas encore ca... 
 
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 : 
 | 
Marsh Posté le 04-08-2006 à 11:40:37
On s'approche, on s'approche... 
  
 
 
 
le code actuel 
| Code : 
 | 
 
 
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 
 
 
 
NOBODY POUR M'AIDER ?!?!
Marsh Posté le 04-08-2006 à 11:44:51
 
tes lignes de code :  
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) 
 
ca récupere ce qu'il y a dans la cellule A2 de CDD et ca le copie en dernière ligne de la colonne A dans Base. 
 
Et toi tu cherches à le mettre où exactement ? qu'est-ce que Kosik?
Marsh Posté le 04-08-2006 à 16:10:07
je veux mettre le n° de l'entité en face du 1er nom de personne (ex : kosik) collé 
- pour avoir la liste des personnes par entité -
Marsh Posté le 04-08-2006 à 20:56:20
tu peux me préciser dans quel classeur se trouve la Sheets("Ref" ) 
Est-ce Workbooks("CDD_test.xls" ) ?
Marsh Posté le 04-08-2006 à 20:57:31
Oui l'onglet "ref" est dans CDD_test 
avec en colonne 1, tous les n° entités, pour réaliser la boucle
Marsh Posté le 04-08-2006 à 21:19:57
Dernière question : 
pourquoi  "A9:G200" 
Est-ce parce que tu ne sais pas détecter la zone qui t'intéresse alors tu ratisses large ?
Marsh Posté le 04-08-2006 à 21:27:39
Bon on va faire comme ça sans attendre ta réponse... 
Tu me testes ça svp :
| Code : 
 | 
 
Nota : Dans ce forum on ne peut pas récupérer les lignes de codes facilement par Copier / Coller 
Pour le récupérer facilement par Copier / Coller, il faut que tu fasses comme si tu voulais modifier ma réponse  
(en cliquant sur le deuxième icone "crayon" )  
 
 
Si j'mé pas trompé ça devrait être bon... 
A+
Marsh Posté le 04-08-2006 à 21:53:33
Yavait au minimum une 'tite erreur sans gravité dans les déclarations : 
 
Dim regate$, iRC%
Marsh Posté le 04-08-2006 à 22:28:56
L'pauvre : l'en reste sans voix. 
C'est l'émotion qui la terrassé ! 
  
  
A moins que ce soit le marchand de sable... 
Allez bonne nuit ! 
A+ 
Marsh Posté le 05-08-2006 à 09:20:44
Oui c'était plutôt Koh Lanta qui m'a fait m'absenter  
 
 
Je testerai ca lundi, car c'est pour le travail  
 
Sinon pour les déclarations de variable, j'en fais jamais   
  
 
Merci 
 
et pour répondre à ta question 
| Citation : pourquoi  "A9:G200"  | 
 
Je ne sais pas détecter car la plage est variable   
 
Marsh Posté le 05-08-2006 à 09:23:11
J'ai plusieurs questions pour comprendre  
 
- à quoi sert le "xwith.. end with" ? 
 
- ligne 14 : pourquoi il y a un point avant range ? 
 
Merci
Marsh Posté le 05-08-2006 à 15:50:58
cela rend le code plus lisible ,accélère l'exécution des procédures et permet d'éviter des saisies répétitives, quand il est complexe et avec beaucoup d'imbrications , ici il t'évite de répéter dans l'exemple de Galopin 
Workbooks(regate & ".xls" ).Worksheets("CDD accroi" ) 
devant le .Range 
 
Voir Aide en ligne
Marsh Posté le 05-08-2006 à 21:31:13
bonsoir et merci kiki29, 
Merci, c'est exactement celà. 
Nota : il ya a aussi un point au début de la ligne 16, ce qui évite également la répétition devant le .Range 
A+
Marsh Posté le 07-08-2006 à 10:48:49
Je viens de tester et ca marche nickel  
 
 
Maintenant je vais juste chercher (je sais pô si c'est possible) 
d'étirer automatiquement les n° entités face aux personnes les concernant 
car le N° n'est présent que face à la première personne de l'entité
Marsh Posté le 07-08-2006 à 11:11:41
J'essaie avec ca mais c'est à travailler 
 
| Code : 
 | 
Marsh Posté le 07-08-2006 à 14:29:42
Bonjour, 
 
Sub Etirer_Regate() 
i = 1 
Do While Cells(i, 2) <> "" 
If Cells(i, 1) = "" Then Cells(i, 1) = Cells(i - 1, 1) 
i = i + 1 
Loop 
End Sub 
 
A+
Marsh Posté le 07-08-2006 à 15:48:00
la macro foctionne nickel  
 
j'aurai pu chercher longtemps avec mes value 
Marsh Posté le 03-08-2006 à 14:47:21
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 ""