Copier des cellules sous conditions - VB/VBA/VBS - Programmation
Marsh Posté le 22-11-2009 à 13:38:19
Bonjour,
je reformule mon souhait:
Si j'ai "1" dans la colonne "C", je voudrais une recopie des cellules des colonnes "A et B" de cette même ligne sur la première ligne libre de cette même feuille.
Me reste plus qu'à trouver les bons termes
Marsh Posté le 23-11-2009 à 11:40:16
Bonjour
Meme si je ne comprends pas l'interet de dupliquer la ligne, un truc comme ca devrait rouler :
A mettre dans le module de ta feuille (Dans ton exemple, c'est Feuil1) :
Code :
|
Cordialement
Marsh Posté le 23-11-2009 à 14:43:22
Bonjour
Effectivement, mais ceci n'est valable donc que pour une feuille, et à condition d'avoir inscrit la macro avant de remplir le tableau, donc ne peut pas être lancé pour faire une vérif d'un tableau. Je me suis permis de faire une autre macro à mettre dans le classeur perso, qu'on peut lancer n'importe quand, sur n'importe quel tableau (semblable, évidemment), en considérant que comme dans ton tableau la ligne 2 est vide, et par souci de clarté, j'ai mis une ligne entre le tableau 1 et le 2.
Sub COPIE_AB()
Range("a3" ).CurrentRegion.Select
Lignes = Range("a3" ).CurrentRegion.Rows.Count
Macol = Range("a3" ).CurrentRegion.Columns(3)
For Each celo In Macol
compte = compte + 1
If celo = 1 Then
Ligne_vide = Range("a" & (3 + Lignes + 1)).Row
MaLigne1 = Range("a3" ).Offset(compte - 1, 0).Row
Report = Report + 1
MaLigne2 = Range("a3" ).Offset(Lignes + Report, 0).Row
Range(Range("a" & MaLigne2), Range("b" & MaLigne2)).Value = Range(Range("a" & MaLigne1), Range("b" & MaLigne1)).Value
End If
Next
End Sub
(éventuellement, j'en ai fait une autre en faisant un filtre classique)
Bien le bonjour
Marsh Posté le 23-11-2009 à 14:45:39
J'ai oublié de préciser qu'il ne doit pas y avoir de ligne vide dans le tableau à vérifier!
Marsh Posté le 23-11-2009 à 14:53:04
Laoo a écrit : Bonjour |
Oui, réponse a sa question.
Laoo a écrit : et à condition d'avoir inscrit la macro avant de remplir le tableau, donc ne peut pas être lancé pour faire une vérif d'un tableau. |
Hum, ta macro dans le classeur perso, faut bien aussi l'inscrire avant... Pas compris le sens du truc la...
Après de savoir si c'est du post traitement, une fois que tous ces 1 sont mis, ou du fur et a mesure... C'etait pas tres claire, j'ai pris le 2nd postula.
Après aucun souci pour te permettre de donner d'autres pistes, bien au contraire
Je ne ferais qu'une remarque, donner la solution c'est bien, donner les explications a quelqu'un qui dit clairement ne rien n'y connaitre, c'est mieux (Et mon dieu, la balise cpp est un bonheur... La c'est illisible)
Cordialement
Marsh Posté le 23-11-2009 à 17:03:03
Bonjour et merci à vous deux,
Le but de recopier la ligne c'est pour remplir un planning journalier, tant que le travail n'est pas fini (donc 1 dans la cellule ou X au choix), le travail apparait toujours.
Ainsi avec les filtres je peux retrouver sur certains travaux combien j'ai passé de temps...
Je n'ai qu'une feuille sur ce classeur. Mais je vais certainement avoir plusieurs colonnes à recopier dont des colonnes groupées ?! Est ce que cela peut fonctionner en adaptant bien sur.
En ce qui concerne la ligne vide, elle n'est pas indispensable, c'est que j'ai supprimé le contenu en essayant de faire quelque chose...
Merci encore à vous deux, je vais essayer ça...
Edit:
ça me recopie bien mes cellules, mais il faut que j'exécute la macro à chaque fois...Je pensais que le fait de mettre "1" dans la cellule aller me recopier la ligne...
De plus j'ai un saut d'une ligne, ce qui fait que ma ligne rajouter ce retrouve en dehors de mon tableau.
J'essaie de comprendre en même temps ce que vous avez écrit afin de pouvoir l'adapter à mon futur tableau
Je suis chiant n'est ce pas
Cordialement,
Michel
Marsh Posté le 23-11-2009 à 17:07:28
Citation : |
Il est vrai que ce n'est pas très clair , c'est pourquoi j'ai pris, moi, le premier (postulaT...)
Citation : |
Merci mon prince
Citation : |
c'est tellement vrai! ( Encore que je n'ai pas lu qu'il disait ne rien Y connaître. (pas :...ne...n'y... ), juste qu'il ne savait pas comment procéder ), mais parfois on n'a pas le temps de faire les deux...
Citation : (Et mon dieu, |
Nan, je t'en prie, appelle-moi Laoo...
Citation : |
Trop aimable! Du moins, l'avantage c'est que c'est recopiable directement...
Citation : Cordialement |
Pareillement
Marsh Posté le 23-11-2009 à 17:14:59
Désolé j'ai édité mon message entre temps...
Mais effectivement en macro je n'y connait rien...du tout
Marsh Posté le 23-11-2009 à 17:33:30
lamiche37 a écrit : ça me recopie bien mes cellules, mais il faut que j'exécute la macro à chaque fois...Je pensais que le fait de mettre "1" dans la cellule aller me recopier la ligne... |
Pour cela, regarde du coté du code que j'ai proposé. Le Private Sub Worksheet_Change(ByVal Target As Range) permet justement de detecter quand on saisi qqchose dans une cellule.
Laoo a écrit : Je me suis permis de faire une autre macro à mettre dans le classeur perso |
Laoo a écrit : Merci mon prince |
Il n'y avait aucune remarque désobligeante. Je précisais juste que je n'allais pas être 'vexé' que tu y mettes ton grain de sel, bien au contraire.
Laoo a écrit : c'est tellement vrai! ( Encore que je n'ai pas lu qu'il disait ne rien Y connaître. (pas :...ne...n'y... ), juste qu'il ne savait pas comment procéder ), mais parfois on n'a pas le temps de faire les deux... |
lamiche37 a écrit : Je ne sais pas du tout comment procéder ?! |
Pour moi, s'il ne sait pas comment débuter sur un pb simple c'est qu'il n'y connait rien. Mais ca n'avait, encore une fois, rien de pejoratif.
Laoo a écrit : Trop aimable! Du moins, l'avantage c'est que c'est recopiable directement... |
Tout comme la balise cpp... Qui elle a l'avantage d'etre lisible et de ne pas etre 'hors charte'.
Mais apparamment tu es du genre à avoir la science infuse, te permettant de corriger les fautes d'orthographe de tes interlocuteurs.
Je te laisse le bon soin d'apporter tes impressionantes lumieres à lamiche37, malgré le fait que finalement il s'agit, apparemment, du second postulat
Cordialement.
Edit : Sujet clos pour ma part etant donné que mon 1er post repond a la demande.
Marsh Posté le 23-11-2009 à 17:51:45
Merci dje69r,
mais je ne sais même pas comment me servir de ce que tu m'as écrit tellement je n'y connait rien
Marsh Posté le 23-11-2009 à 17:51:50
lamiche37 a écrit : Bonjour et merci à vous deux, |
Apparemment, c'est donc bien la macro de notre ami dje69r que tu dois utiliser, elle fonctionnera à chaque fois que tu mettras 1 dans ta colonne, mais attention à ne pas recopier la cellule C (contenant le 1), sinon la machine s'emballera!!!
@+
Marsh Posté le 23-11-2009 à 17:57:27
Non j'avais essayé d'abord la tienne, et là je viens d'essayer celle de dje69r mais il m'affiche des erreurs...
Marsh Posté le 23-11-2009 à 18:13:28
Citation : Il n'y avait aucune remarque désobligeante. Je précisais juste que je n'allais pas être 'vexé' que tu y mettes ton grain de sel, bien au contraire. |
Hmmmm? A voir ce que tu me balances depuis tout à l'heure, et la suite de ton post, on peut s'interroger!
Citation : |
Et vlan!
Citation : |
Et re-vlan!
Citation : |
C'était justement la conclusion que je lui postais pendant que tu envoyais ce gentil message
Marsh Posté le 23-11-2009 à 18:27:24
lamiche37 a écrit : Non j'avais essayé d'abord la tienne, et là je viens d'essayer celle de dje69r mais il m'affiche des erreurs... |
Aïe! Il va pas être content!!! Il était déjà fâché, là on risque le malaise! Et pis je crois qu'il a claqué la porte et qu'il veut plus t'aider.
Je vais voir ce que je peux faire pour toi, mais je suis beaucoup moins savant en informatique que lui, tu sais!
Marsh Posté le 23-11-2009 à 18:53:12
lamiche37 a écrit : Merci mais tout ça ne m'aide pas |
Pleure po, bébé, on va t'aider
Bon, j'ai testé la macro du monsieur, elle marche très bien, je comprends pas ton problo?
Tu peux juste rajouter ces 2 lignes pour plus de confort:
Application.CutCopyMode = False 'pour annuler le mode "copy" '(les pointillés scintillants)
Target.Offset(1, 0).Select ' revient une case sous celle où tu as rentré le dernier "1" (appelée "Target", cible)
Si tu as encore un pb, essaie de bien m'expliquer quoi, ou bien ce que tu veux faire.
A+
Marsh Posté le 23-11-2009 à 19:02:04
Merci,
pour ta macro: j'ai fais un copier/coller alors que pour celle de dje69r ça ne marche pas
Bon je réessaie
Edit:
J'ai une erreur 424
et si je fait deboggage j'ai: If Target.Column <> 3 Then en jaune
Je ne comprends pas
Marsh Posté le 23-11-2009 à 19:48:06
Hello
Bon, j'étais sorti, me revoilà.
Je ne comprends pas non plus? J'ai fait aussi un copier/coller, ça marche bien.
A quel moment as-tu l'erreur?
Marsh Posté le 23-11-2009 à 20:00:38
j'ai mis ça dans 1 tableau, qui je pense correspond au tien:
aaa dd ee
21 torchon 0
23 serviette 0
42 poire 1
44 pomme 0
46 raisin 0
56 citron 1
67 TOMATE 1
78 patates 0
42 poire
56 citron
67 TOMATE
(aaa, dd, ee, sont les titres de colonnes, etc)
à chaque fois que je tape 1 en colonne C, il recopie les cells A et B à la suite; c'est bien ce que tu voulais?
Quant à la macro, je l'ai copiée dans le module correspondant à la feuille1 du classeur en question (pas dans le classeur de macros Perso.xls) OK?
Marsh Posté le 23-11-2009 à 20:17:15
Citation : Quant à la macro, je l'ai copiée dans le module correspondant à la feuille1 du classeur en question |
ça doit être là que je me plante
Qu'entendez vous par "module" ?
Mais quel imbécile je suis , ça y est j'ai fini par comprendre:
je fais un clic droit sur l'onglet et là je visualise le code et fais un copier coller
Pour rajouter tes 2 lignes:
Citation : Application.CutCopyMode = False 'pour annuler le mode "copy" '(les pointillés scintillants) |
Est ce qu'il y a un ordre ?
Et puis je adapter cette macro avec plus de colonne ( de A à Q) et dont des colonnes groupées
Déjà j'essaie de comprendre le code et après j'essaie de le réécrire et si tu peux m'aider à le corriger
Merci à vous 2
Marsh Posté le 23-11-2009 à 21:46:08
Citation : |
En réalité, c'est pas tout à fait un module, comme tu peux le voir, car un module, c'est une page soit de Perso.xls, pour toutes les macros générales, soit d'un classeur actif, pour toutes les feuilles de CE classeur, mais seulement de ce classeur; tandis que là, on le copie sur, disons, le "verso" de la feuille 1, et ça ne concernera QUE cette feuille 1, ou 2, ou 3,...
Pour rajouter les 2 lignes, il n'y a pas d'ordre, mais évidemment elles viennent à la fin de la macro, après la copie, pr revenir continuer le travail.
Citation : Et puis je adapter cette macro avec plus de colonne et des colonnes groupées |
ATTENTION!!!! si jamais tu recopies la cellule de la col C, la macro ne s'arrête plus!!!
Bon, j'ai un peu raccourci et remanié la macro de notre ami, pour qu'elle fasse la même chose sans déplacements, et qu'elle copie aussi les cellules D à H, par exemple. Je crois que ça devrait marcher aussi avec des colonnes groupées, je te laisserai vérifier.
Private Sub Worksheet_Change(ByVal Target As Range)
'Si on modifie une cellule autre que dans la colonne C ca ne fait rien
If Target.Column <> 3 Then Exit Sub
'Si on saisi autre chose que 1 en colonne C ca ne fait rien (comme suppr par ex)
If Target.Value <> 1 Then Exit Sub
'Recuperation de la ligne ou on saisi 1
RowSel = Target.Row
'''''''''''''''''''c'est là que ça change:
'Rang de la dernière ligne NON-vide (A CONDITION QUE LA CELLULE "B" de cette ligne ne soit PAS VIDE !)
'(+1 pour avoir le n° de la 1ere ligne VIDE):
RowFin = Range("B65536" ).End(xlUp).Row + 1
'Copie sans déplacement des 2 premières cellules de la ligne, puis des cellulesD à H, par exemple:
Range(Cells(RowFin, 1), Cells(RowFin, 2)).Value = Range(Cells(RowSel, 1), Cells(RowSel, 2)).Value
Range(Cells(RowFin, 4), Cells(RowFin, 8)).Value = Range(Cells(RowSel, 4), Cells(RowSel, 8)).Value
End Sub
c'est tout!
Et plus la peine de rajouter les 2 lignes puisque on ne se déplace plus!
C'est dommage si il est faché, parce qu'il aurait pu m'expliquer comment utiliser son cpp... (Je sais pas faire ça!!!!!!!!!!!!!! )
Déjà j'essaie de comprendre le code et après j'essaie de le réécrire et si tu peux m'aider à le corriger
Merci à vous 2
[/quotemsg]
Marsh Posté le 23-11-2009 à 22:27:08
J'ai refait entièrement mon tableau ,
la colonne ou je mettrais 1 ce retrouve sur la colonne R donc 18
j'ai donc fait ceci:
Citation : Private Sub Worksheet_Change(ByVal Target As Range) |
mais ça ne fonctionne pas a priori j'ai vu un message de taille de cellule
Je te joins une copie de mon fichier sous format 2007 http://www.cijoint.fr/cjlink.php?f [...] heh0C.xlsx
Merci pour tout,
je vais continuer de lire un bouquin sur excel et vba
Bonne nuit
Marsh Posté le 23-11-2009 à 23:30:35
lamiche37 a écrit : J'ai refait entièrement mon tableau , |
Mais ti es fou, toi!!!!
C'est là que ça merdoie, c'est sûr:
'On copie A et B
Range(Cells(RowSel, 1), Cells(RowSel, 2), Cells(RowSel, 3), Cells(RowSel, 4),,Cells(RowSel, 5), Cells(RowSel, 6), Cells(RowSel, 7), _
Cells(RowSel, 8), Cells(RowSel, 9), Cells(RowSel, 10), Cells(RowSel, 11), Cells(RowSel, 12),,Cells(RowSel, 13), Cells(RowSel, 14), _
Cells(RowSel, 15), Cells(RowSel, 16)).Copy
'tu remplaces ça par:
'Range(début,fin).copy
'et mieux encore: Range(début,fin).valeur*= Range(début,fin).valeur**, où *= destination et ** = origine, soit:
Range(Cells(RowFin, 1), Cells(RowFin, 17)).Value = Range(Cells(RowSel, 1), Cells(RowSel, 17)).Value
donc:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 3 Then Exit Sub
If Target.Value <> 1 Then Exit Sub
RowSel = Target.Row
RowFin = Range("B65536" ).End(xlUp).Row + 1 '***
Range(Cells(RowFin, 1), Cells(RowFin, 17)).Value = Range(Cells(RowSel, 1), Cells(RowSel, 17)).Value '****
End Sub
5 lignes !
' *** Rang de la dernière ligne NON-vide, A CONDITION QUE LA CELLULE "B" de cette ligne ne soit PAS VIDE !)
' tu peux prendre n'importe quelle lettre de ta ligne dont tu sois sûr qu'elle soit toujours remplie: A, ,B, G, H et tjrs 65536.
'(+1 pour avoir le n° de la 1ere ligne VIDE)
'****(COL 17, si tu remplies de 1 à 17)
Citation : |
C'est celà, bonne lecture, et en attendant, Bonne nuit à toi aussi.
Marsh Posté le 23-11-2009 à 23:38:43
j'ai essayé d'ouvrir ton fichier, mais pas possible; pourras-tu me l'envoyer en ancien format, je n'ai pas office 2007 sur ce PC. (plus tard, je vas dormir, maintenant!)
Marsh Posté le 23-11-2009 à 23:50:10
jjjuste une chose encore, à la 1° ligne, il faut évidemment mettre : column <>18, et non pas column <> 3 !!!
Marsh Posté le 24-11-2009 à 09:24:10
Je ne suis pas quelqu'un qui se vexe rapidement. C'est juste que des remarques sur l'orthographe pour son probleme ne servaient pas a grand chose. Surtout qu'a la base, le morceau de code repondait a son attente.
Aucun rapport avec l'aide que tu lui apportais.
Bref, je dois surement etre dans ma période des 28 jours...
Pour la balise cpp, bah tu mets :[ cpp] (sans espace) ton code et tu fermes la balise.[/cpp]
Le module des feuilles (onglets) sont des modules de classe.
J'attends aussi le fichier pour regarder plus en détails.
Je peux deja te dire qu'ici :
lamiche37 a écrit : J'ai refait entièrement mon tableau ,
|
Le Range te permets de sélectionner une cellule JUSQU'A une autre cellule. Ta syntaxe est donc erronnée. (Dans sa forme 'simple')
Si tu veux sélectionner/copier de A (Colonne 1) à P (Colonne 16) il faut faire :
Code :
|
Cordialement.
Marsh Posté le 24-11-2009 à 10:29:42
Ah, le revoilà! Bonjour, Monsieur.
Merci pour le cpp, c'est effectivement plus joli, aéré, et tout, et de plus si simple que c'en est déconcertant!
Euh, pour le code :
SuppotDeSaTante a écrit :
|
C'est ce que je lui disais, non ? :
Citation : |
Et la macro que je lui proposais, variante de la tienne, que je ne résiste pas au plaisir d'écrire avec ton cpp, pour voir si c'est bien comme ça:
Citation :
|
Merci encore
Bien à toi
Marsh Posté le 24-11-2009 à 11:11:35
Oui c'est possible en effet que c'etait ce que tu disais, mais hum, j'ai meme pas lu... Tellement c'etait... hum... Moche !
Donc en effet, une fois lisible ta macro roule
Marsh Posté le 24-11-2009 à 17:47:53
Bonjour et merci à vous 2 ,
Voici mon nouveau fichier http://www.cijoint.fr/cjlink.php?f [...] vJ6rBN.xls sur le quel j'ai rajouté la "macro"
Sur le fichier la macro ne fonctionne pas
Si c'est plus facile que je mettes un "O" ou un "N" pour Fini: Oui-Non
Que pouvez vous me conseiller pour apprendre ce "langage" sur le bouquin que j'ai "Formules et Fonctions Excel 2003", je n'ai pas trouvé tout ces termes
Marsh Posté le 24-11-2009 à 18:33:01
lamiche37 a écrit : Bonjour et merci à vous 2 , |
Bonsoir mon ami
C'est normal qu'elle marche pas!
Moi j'ai vu en 2 secondes ce qui n'allait pas.
Regarde-la BIEN, tu vas trouver.
Marsh Posté le 24-11-2009 à 18:53:13
Je vais t'aider: regarde aussi ton tableau. A y est?
L'informatique est aussi une question d'observation, de raisonnement et d'adaptation. Amen.
Pour ta question pour O / N, tu peux mettre ce que tu veux à condition de mettre la même chose ds la macro, of course.
pour les bouquins, moi chsais pas, les miens, ça fait un bail que je les ai, mais entre VBA pour les nuls, ou équivalent, (c'est pas un jugement de valeur, hein!), et les bouquins de chez microsoft ou micro-application, tu devrais trouver de quoi t'amuser.
Marsh Posté le 24-11-2009 à 19:06:11
Est ce une question de colonne vide
Je ne vois pas
Edit: En recopiant exactement ce que tu m'as fournit ça fonctionne si je remplie toutes mes cellules des colonnes avant la "R"
Donc il faudra que je remplisse obligatoirement toutes mes cellules
Et autre petite question puis je conserver la police d'écriture et les couleurs (sinon je formate mes colonnes )
Pour mettre O à la place de 1 je modifie:
Citation : If Target.Value <> 1 Then Exit Sub |
Par:
Citation : If Target.Value <> O Then Exit Sub |
C'est ça
Marsh Posté le 24-11-2009 à 20:44:46
Sorry, j'étais allé mangir.
Alors, les réponses:
OUI
NON
OUI
C'est bien, tu as 2 oui pour 1 non. Enfin, on va dire ça comme ça.
Bon, effectivement, c'est une question de colonne. Je t'avais dit dans une des dernières descriptions:
Citation : |
Mais je vois que tu n'as pas compris le principe, et le tort nous en revient, car on ne te l'a pas expliqué.
Donc la formule : RowFin = Range("B65536" ).End(xlUp).Row
veut dire qu'à partir de la toute dernière ligne possible (65536), on remonte - End(xlUp) - le long de la colonne B, jusqu'à trouver une cellule non-vide dans cette colonne.
Selon le scénario de cette macro, cette cellule est censée être la dernière du tableau, donc à partir de laquelle on recopiera les lignes désirées. On rajoute +1 pour avoir le N° de la ligne vide. Tu peux prendre n'importe quelle colonne, à condition d'en choisir une dont tu es sûr qu'elle sera TOUJOURS la plus basse de ton tableau, le remplissage des autres col n'a alors pas d'importance.
Le mot rowfin est arbitraire, tu peux mettre ligne1, TotoLast, ou ce que tu veux, mais il illustre bien ce qu'il désigne ici, c'est utile pr quand tu fais ou relis une macro, tu vois tt de suite même 3 pages plus loin de quoi il s'agit.
Est-ce bien clair?
Marsh Posté le 24-11-2009 à 20:47:10
j'ai oublié de répondre à ta dernière question,
If Target.Value <> O Then Exit Sub
oui, c'est tout à fait ça, Bravo.
Marsh Posté le 24-11-2009 à 20:57:14
Laoo a écrit : j'ai oublié de répondre à ta dernière question, |
ne serait-ce pas
If Target.Value <> "O" Then Exit Sub
Cordialement
Marsh Posté le 24-11-2009 à 21:07:24
Merci,
Donc si je ne veux pas avoir à remplir toutes mes cellules je choisis une colonne où toutes les cellules sont pleines donc ma colonne G
Citation : Private Sub Worksheet_Change(ByVal Target As Range) |
Et j'apprécie effectivement les explications
ça donne vraiment envie d'en savoir plus
Marsh Posté le 24-11-2009 à 21:52:58
lamiche37 a écrit : Merci,
|
Tu n'es pas obligé d'avoir une colonne dont toutes les cellules sont remplies, mais c'est effectivement le mieux, afin d'être sûr de ne pas copier une ligne sur une autre. Ainsi tes recopies seront tjrs plus basses que ton tableau, CQFD.
Le monsieur au-dessus a raison, si c'est un 0 et non pas un 0 (Bonjour l'ambigüité!!), c'est à dire une lettre et non pas un chiffre, il convient d'écrire ......<>"O", sinon Excel se fâche...
Dis-moi, je pense à qq chose pour ton tableau, il me semblerait judicieux de rajouter dans la ligne que tu as recopiée une mention signalant qu'elle a été copiée, afin de ne pas la recopier plusieurs fois par inadvertance.
Du genre Target.offset(0,1).Value="Vu" (ou même Target.Value="Vu" ) à la fin, et au début:
If Target.Value="Vu" Then Exit Sub ?
Tu peux aussi colorer les lignes en fonction de leur état, fait, pas fait à faire, urgent...
Marsh Posté le 24-11-2009 à 22:20:19
Citation : Dis-moi, je pense à qq chose pour ton tableau, il me semblerait judicieux de rajouter dans la ligne que tu as recopiée une mention signalant qu'elle a été copiée, afin de ne pas la recopier plusieurs fois par inadvertance. |
je veux justement pouvoir la recopier tant que je n'ai pas répondu "O" pour Oui donc pour certain travaux, plusieurs fois afin que ça reste à l'écran (si je me fais bien comprendre )
Je ne comprends pas le:
Citation : Du genre Target.offset(0,1).Value="Vu" (ou même Target.Value="Vu" ) à la fin, et au début: |
En ce qui concerne:
Citation : |
je pense que ce sera ma prochaine étape avec la création d'un onglet par machine et le renvoi des lignes qui concernent ces machines (donc la colonne "H" ). Pour l'instant je fais un copier/coller sur un autre dossier afin d'avoir un suivi des machines et des pannes
Sur ce
Marsh Posté le 24-11-2009 à 23:22:57
lamiche37 a écrit : |
non, pas du tout...
Tu remplaces 1, qui signifiait: pas fait, à recopier, par "0", et tu me dis que cela signifiera "FAIT" ????????????????????? Là je suis paumé, et ça ne va plus du tout ds la macro!!!!
Splique-moi, svp.
Dans ce cas, si "0" est le contraire de 1 (qui devient "N" ), il faut mettre alors:
If Target.Value <> "N" Then Exit Sub
qui signifie aussi : If Target.Value = "O" Then Exit Sub (mention inutile, impliquée par la précédente, indiqée pour l'exemple).
Autrement dit:
Si j'écris "N", je recopie, si j'écris "O", je recopie PAS, je sors de la macro. Right?
Et si tu la recopies en bas de tableau pour qu'elle reste présente, tu ne veux pas supprimer la ligne d'origine, par hasard, ce qui serait ptêtre plus rationnel? (genre: Target.entirerow.Delete)
Citation :
|
C'était pour signaler dans la ligne qu'elle avait été copiée...
Dors en paix, mon ami
Marsh Posté le 21-11-2009 à 19:09:52
Bonjour,
je suis à la recherche d'une solution pour pouvoir recopier certaines cellules (qui se suivent) d'une ligne si je n'ai pas de "X", dans une colonne.
Voici une copie de mon tableau: http://img80.imageshack.us/img80/4416/essaiexcel1.jpg
Donc si je mets "X" dans une ligne de la colonne C je voudrais que cette ligne ce recopie en dessous. Quand mon travail est fait je mettrais "1" dans la colonne C.
Je ne sais pas du tout comment procéder ?!
Merci d'avance