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 ""