loulou411
Messages postés17Date d'inscriptionmercredi 16 janvier 2008StatutMembreDernière intervention 2 octobre 2008
-
30 sept. 2008 à 14:40
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 2012
-
2 oct. 2008 à 16:17
Bonjour,<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Je débute en vba et je voudrais réaliser une fonction si, ce doit être certes très simple mais après plusieurs tentative rien ne marche et je ne comprends rien !!!
Donc en fait je voudrai faire :
Si ma cellule Z1 est égale à « yes » alors toute la ligne doit etre collée sinon on ne la copie colle pas.
Et je voudrai que cela s’effectue en boucle pour toutes les lignes.
(en fait je veux copier coller toutes les lignes d'un fichier qui on "yes" dans la colonne z;
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 30 sept. 2008 à 14:50
Salut,
Regarde ceci
Dim i As Integer
'ATTENTION BOUCLE SUR TOUTE LES
'LIGNES DE LA COLONNES Z de 1 à 250
For i = 1 To 250
'sil elle n'est pas vide
If Not IsEmpty(Range("Z" & CStr(i))) Then
If UCase$(Range("Z" & CStr(i)).Value) = "YES" Then ce.EntireRow.Copy('DEstination)
'copier coller OUI mais ou????
End If
Next, ----
[../code.aspx?ID=41455 By Renfield]
loulou411
Messages postés17Date d'inscriptionmercredi 16 janvier 2008StatutMembreDernière intervention 2 octobre 2008 30 sept. 2008 à 15:19
Merci bcp jrivet !!!
coller sur une autre feuille du classeur : qui s'appelle RFQ
moi je le collais comme ca :
Sheets("RFQ").Select
Range("A1").Select
ActiveSheet.Paste
et de cette manière tu ne crois pas que ca risque d'etre très long et d'alourdir le code ?
ne vaudrait il pas mieux faire :
coller tous sauf colonne z different de yes ?
désolé de ne pas avoir demander avnt mais je viens d'y penser ....
lillith212
Messages postés1229Date d'inscriptionvendredi 16 novembre 2007StatutMembreDernière intervention16 juin 2009 30 sept. 2008 à 15:34
Salut,
Teste ton idée!!! Tu as toutes les pistes pour le faire...
Et surtout si tu trouve n'oubli pas de valider la ou les réponses qui t'ont aidés. et de mettre la solution bien évidemment.
S.L.B.
<hr />-- Le règlement tu liras -- Des recherches tu feras -- Le style SMS tu banniras --
-- De la validation pertinente tu feras -- Du respect tu auras -- Le bon t
loulou411
Messages postés17Date d'inscriptionmercredi 16 janvier 2008StatutMembreDernière intervention 2 octobre 2008 30 sept. 2008 à 17:06
je teste ce script mais à chaque fois cela me marque "erreur de compilation next sans for" ....
je ne comprends vraiment pas puisque j'ai un For j'ai essayé de changer de place le next ou de changer de module et tout recommencer mais rien à faire ce message revient toujours...
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 1 oct. 2008 à 13:49
Re,
> [../auteur/PCPT/401740.aspx PCPT]: Merki. je me suis dis qu'il avais utilisé mon code... donc.
> : por ton problème essaie ceci. mais cela ne changera pas grand chose dans le sens ou il faut mettre qqchose pour copier
Dim i As Integer
For i = 1 To 450
If Not IsEmpty(Range( "Z" & CStr(i))) Then
If UCase$(Range("Z" & CStr(i)).Value) = "YES" Then
ce.EntireRow.Copy("feuil3") End If End If
Next
@+: Ju£i€n Pensez: Réponse acceptée
loulou411
Messages postés17Date d'inscriptionmercredi 16 janvier 2008StatutMembreDernière intervention 2 octobre 2008 1 oct. 2008 à 14:04
loulou est une fille !!! pas un homme ... oui je sais mon profil porte a confusion ...
bref ce n'est pas le sujet...
bon honnetement je te remercie vraiment jrivet mais j'avai deja essayé le deuxieme end if et cela na rien changé au problème j'ai toujours mon erreur de next sans for.
sincerement je comprends rien à vba c'est vraiement la catastrophe je suis obligé de l'utiliser à mon travail mais j'ai aucune formation la dessus et malgré tous les tutoriels que j'ai pu lire , les forums et vba pour les nuls .. je ne comprends toujours pas .. pour moi tous ces codes c'est du chinois !!!
bref je desespère et je suis désolé de ne pas comprendre ce que vous me dites. merci bcp pour votre aide je suis sur que ca en aurait aidé beaucoup mais en fait je crois que je suis vraiement trop nul .....
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 1 oct. 2008 à 14:34
Re,
Oups excuse moi mademoiselle (madame)
Mais il est toujours bon de le savoir.
Alors reprenons, pour essayer d'avancer.
Est ce que tu as compris ce que faisait le petit bout de code que je t'ai donné?
Si vraiment tu as un problème de compréhension, envoie l'excel avec un descriptif DETAILLE de ce que tu souhaites (j'ai un peu de temps, alors je pourrais peu etre essayer de faire qqch pour t'expliquer plus en détails) mail: epsylon9 @ gmail point com
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 1 oct. 2008 à 15:16
Re,
Bon continuons ici. J'attendais le fichier XLS mais ce n'est pas grave on va d'abord essayer d'avancer sans.
Alors essaie ceci en espérant que ce soit asser commenté.
NOTE: Cstr(i) convertit i (un entier) en chaine de caractère
donc "Z" & CStr(i) <gras>"Z2" si i 2</gras>
Dim i As Integer
'DestLigne = Ligne de destination
'dans la feuille 3
Dim DestLigne As Long
DestLigne = 1
'De la ligne 1 à 450
For i = 1 To 450
'si la cellule Zi (donc Z1, Z2 .... Z450 n'est pas vide
If Not IsEmpty(Range("Z" & CStr(i))) Then
'Si la valeur de la cellule Z1, Z2, .... Z450 est yes (ou yEs, ou yes, ou YeS)
'bref on n'est pas sensible à la casse
If UCase$(Range("Z" & CStr(i)).Value) = "YES" Then
'on copie toute la ligne dans la feuille 3 à la ligne DestLigne
Call Range("Z" & CStr(i)).EntireRow.Copy(ActiveWorkbook.Worksheets("feuil3").Range("A" & CStr(DestLigne)))
'On incrément Destligne pour le prochain passage
DestLigne = DestLigne + 1
End If
End If
Next , ----
[../code.aspx?ID=41455 By Renfield]
loulou411
Messages postés17Date d'inscriptionmercredi 16 janvier 2008StatutMembreDernière intervention 2 octobre 2008 1 oct. 2008 à 18:31
ok merci je comprends bcp mieux ce que je fais ..
bon maintenant cane m'affiche aucune erreur ... ce qui est un bon debut pour moi !
pare contre rien ne se passe , je pense que je ne dois pas me positionner sur la bonne feuille de départ à la base , non ?
parceque moi j'enregistre direcement la macro sur la feuille en question et parès je met le texte , peut etre n'est ce pas suffisant ?