Bonjour,
j'ai un leger trou de memoire et je coince
dans un plage de cellule (ex: D4:E1000)il faut que je repere les
cellules qui contiennent "P" ou que l'on va saisir dans le futur donc
:
'For Each x In Range("D4:E1000")
'If x.Value Like "P" then ....
et la je bute soit sur la syntaxe soit sur la methode
il faut que la selection de la ligne en question se fasse
de A_ à E_ et de la ranger dans la feuille correspondante
Sheets("toto").select
[A65...].End(xlup).Offset(1, 1).Select
' Next
merci de bien vouloir me donner le petit coup de main
bonne journee
Sub p() For Each c In Selection If c = "p" Then If t = "" Then t = c.Address Else r1 = Range(t).Address r2 = c.Address t = Union(Range(r1), Range(r2)).Address End If End If Next Range(t).Select End Sub
Camille
"eneric" wrote:
Bonjour, j'ai un leger trou de memoire et je coince dans un plage de cellule (ex: D4:E1000)il faut que je repere les cellules qui contiennent "P" ou que l'on va saisir dans le futur donc : 'For Each x In Range("D4:E1000") 'If x.Value Like "P" then .... et la je bute soit sur la syntaxe soit sur la methode il faut que la selection de la ligne en question se fasse de A_ à E_ et de la ranger dans la feuille correspondante Sheets("toto").select [A65...].End(xlup).Offset(1, 1).Select
' Next merci de bien vouloir me donner le petit coup de main bonne journee
-- eneric
Bonjour,
Sub p()
For Each c In Selection
If c = "p" Then
If t = "" Then
t = c.Address
Else
r1 = Range(t).Address
r2 = c.Address
t = Union(Range(r1), Range(r2)).Address
End If
End If
Next
Range(t).Select
End Sub
Camille
"eneric" wrote:
Bonjour,
j'ai un leger trou de memoire et je coince
dans un plage de cellule (ex: D4:E1000)il faut que je repere les
cellules qui contiennent "P" ou que l'on va saisir dans le futur donc
:
'For Each x In Range("D4:E1000")
'If x.Value Like "P" then ....
et la je bute soit sur la syntaxe soit sur la methode
il faut que la selection de la ligne en question se fasse
de A_ à E_ et de la ranger dans la feuille correspondante
Sheets("toto").select
[A65...].End(xlup).Offset(1, 1).Select
' Next
merci de bien vouloir me donner le petit coup de main
bonne journee
Sub p() For Each c In Selection If c = "p" Then If t = "" Then t = c.Address Else r1 = Range(t).Address r2 = c.Address t = Union(Range(r1), Range(r2)).Address End If End If Next Range(t).Select End Sub
Camille
"eneric" wrote:
Bonjour, j'ai un leger trou de memoire et je coince dans un plage de cellule (ex: D4:E1000)il faut que je repere les cellules qui contiennent "P" ou que l'on va saisir dans le futur donc : 'For Each x In Range("D4:E1000") 'If x.Value Like "P" then .... et la je bute soit sur la syntaxe soit sur la methode il faut que la selection de la ligne en question se fasse de A_ à E_ et de la ranger dans la feuille correspondante Sheets("toto").select [A65...].End(xlup).Offset(1, 1).Select
' Next merci de bien vouloir me donner le petit coup de main bonne journee
-- eneric
Youky
Salut, remets le bon nom des onglets ou mieux mets le CodeName exemple Feuil1.Range(......si l'utilisateur renomme l'onglet cela ne plante pas tu trouves le nom dans la fenetre projet Youky
For Each x In Range("D4:E1000") If x.Value Like "P" Then lig = Sheets("Feuil2").[A65536].End(3).Row + 1 Sheets("Feuil2").Range("A" & lig & ":E" & lig).Value = _ Sheets("Feuil1").Range("A" & x.Row & ":E" & x.Row).Value End If Next
"eneric" a écrit dans le message de news:
Bonjour, j'ai un leger trou de memoire et je coince dans un plage de cellule (ex: D4:E1000)il faut que je repere les cellules qui contiennent "P" ou que l'on va saisir dans le futur donc : 'For Each x In Range("D4:E1000") 'If x.Value Like "P" then .... et la je bute soit sur la syntaxe soit sur la methode il faut que la selection de la ligne en question se fasse de A_ à E_ et de la ranger dans la feuille correspondante Sheets("toto").select [A65...].End(xlup).Offset(1, 1).Select
' Next merci de bien vouloir me donner le petit coup de main bonne journee
-- eneric
Salut,
remets le bon nom des onglets ou mieux mets le CodeName
exemple Feuil1.Range(......si l'utilisateur renomme l'onglet cela ne plante
pas
tu trouves le nom dans la fenetre projet
Youky
For Each x In Range("D4:E1000")
If x.Value Like "P" Then
lig = Sheets("Feuil2").[A65536].End(3).Row + 1
Sheets("Feuil2").Range("A" & lig & ":E" & lig).Value = _
Sheets("Feuil1").Range("A" & x.Row & ":E" & x.Row).Value
End If
Next
"eneric" <eneric.v@cegetel.net> a écrit dans le message de news:
mn.0a3d7d72279a0c73.51150@cegetel.net...
Bonjour,
j'ai un leger trou de memoire et je coince
dans un plage de cellule (ex: D4:E1000)il faut que je repere les cellules
qui contiennent "P" ou que l'on va saisir dans le futur donc :
'For Each x In Range("D4:E1000")
'If x.Value Like "P" then ....
et la je bute soit sur la syntaxe soit sur la methode
il faut que la selection de la ligne en question se fasse
de A_ à E_ et de la ranger dans la feuille correspondante
Sheets("toto").select
[A65...].End(xlup).Offset(1, 1).Select
' Next
merci de bien vouloir me donner le petit coup de main
bonne journee
Salut, remets le bon nom des onglets ou mieux mets le CodeName exemple Feuil1.Range(......si l'utilisateur renomme l'onglet cela ne plante pas tu trouves le nom dans la fenetre projet Youky
For Each x In Range("D4:E1000") If x.Value Like "P" Then lig = Sheets("Feuil2").[A65536].End(3).Row + 1 Sheets("Feuil2").Range("A" & lig & ":E" & lig).Value = _ Sheets("Feuil1").Range("A" & x.Row & ":E" & x.Row).Value End If Next
"eneric" a écrit dans le message de news:
Bonjour, j'ai un leger trou de memoire et je coince dans un plage de cellule (ex: D4:E1000)il faut que je repere les cellules qui contiennent "P" ou que l'on va saisir dans le futur donc : 'For Each x In Range("D4:E1000") 'If x.Value Like "P" then .... et la je bute soit sur la syntaxe soit sur la methode il faut que la selection de la ligne en question se fasse de A_ à E_ et de la ranger dans la feuille correspondante Sheets("toto").select [A65...].End(xlup).Offset(1, 1).Select
' Next merci de bien vouloir me donner le petit coup de main bonne journee
-- eneric
Garette
Bonjour,
Sub test() For Each X In Sheets("Feuil1").Range("D4:E1000") If InStr(1, X.Value, "P") <> 0 Then Range(Cells(X.Row, 1), Cells(X.Row, 5)).Copy _ (Sheets("toto").Range("A65000").End(xlUp).Offset(1, 0)) End If Next End Sub
Il faut éventuellement gérer le P majuscule et le p minuscule Dans mon cas je cherche P dans la chaine de caratere de la cellule. Si on est sur qu'il n'y a que P alors remplacer : If InStr(1, X.Value, "P") <> 0 Then par If X.Value = "P" <> 0 Then
Bonjour,
Sub test()
For Each X In Sheets("Feuil1").Range("D4:E1000")
If InStr(1, X.Value, "P") <> 0 Then
Range(Cells(X.Row, 1), Cells(X.Row, 5)).Copy _
(Sheets("toto").Range("A65000").End(xlUp).Offset(1, 0))
End If
Next
End Sub
Il faut éventuellement gérer le P majuscule et le p minuscule
Dans mon cas je cherche P dans la chaine de caratere de la cellule.
Si on est sur qu'il n'y a que P alors remplacer :
If InStr(1, X.Value, "P") <> 0 Then
par
If X.Value = "P" <> 0 Then
Sub test() For Each X In Sheets("Feuil1").Range("D4:E1000") If InStr(1, X.Value, "P") <> 0 Then Range(Cells(X.Row, 1), Cells(X.Row, 5)).Copy _ (Sheets("toto").Range("A65000").End(xlUp).Offset(1, 0)) End If Next End Sub
Il faut éventuellement gérer le P majuscule et le p minuscule Dans mon cas je cherche P dans la chaine de caratere de la cellule. Si on est sur qu'il n'y a que P alors remplacer : If InStr(1, X.Value, "P") <> 0 Then par If X.Value = "P" <> 0 Then
eneric
eneric à dit je travaille sur vos propositions a+
Bonjour,
Sub test() For Each X In Sheets("Feuil1").Range("D4:E1000") If InStr(1, X.Value, "P") <> 0 Then Range(Cells(X.Row, 1), Cells(X.Row, 5)).Copy _ (Sheets("toto").Range("A65000").End(xlUp).Offset(1, 0)) End If Next End Sub
Il faut éventuellement gérer le P majuscule et le p minuscule Dans mon cas je cherche P dans la chaine de caratere de la cellule. Si on est sur qu'il n'y a que P alors remplacer : If InStr(1, X.Value, "P") <> 0 Then par If X.Value = "P" <> 0 Then
-- eneric
eneric à dit
je travaille sur vos propositions
a+
Bonjour,
Sub test()
For Each X In Sheets("Feuil1").Range("D4:E1000")
If InStr(1, X.Value, "P") <> 0 Then
Range(Cells(X.Row, 1), Cells(X.Row, 5)).Copy _
(Sheets("toto").Range("A65000").End(xlUp).Offset(1, 0))
End If
Next
End Sub
Il faut éventuellement gérer le P majuscule et le p minuscule
Dans mon cas je cherche P dans la chaine de caratere de la cellule.
Si on est sur qu'il n'y a que P alors remplacer :
If InStr(1, X.Value, "P") <> 0 Then
par
If X.Value = "P" <> 0 Then
Sub test() For Each X In Sheets("Feuil1").Range("D4:E1000") If InStr(1, X.Value, "P") <> 0 Then Range(Cells(X.Row, 1), Cells(X.Row, 5)).Copy _ (Sheets("toto").Range("A65000").End(xlUp).Offset(1, 0)) End If Next End Sub
Il faut éventuellement gérer le P majuscule et le p minuscule Dans mon cas je cherche P dans la chaine de caratere de la cellule. Si on est sur qu'il n'y a que P alors remplacer : If InStr(1, X.Value, "P") <> 0 Then par If X.Value = "P" <> 0 Then
-- eneric
eneric
eneric à dit Si j'ecris se code For Each x In Range("D4:E1000") If x.Value Like "p" Then lig = Sheets("Ins").[A65536].End(3).Row + 1 Sheets("Ins").Range("A" & lig & ":E" & lig).Value = _ Sheets("BD").Range("A" & x.Row & ":E" & x.Row).Value End If Next pour 4 lignes ou ils trouvent "p" il m'en recopie 10 avec la premiere ligne 4 fois la 2eme 3 fois etc... si je mets se code : For Each X In Sheets("BD").Range("D4:E1000") If InStr(1, X.Value, "p") <> 0 Then Range(Cells(X.Row, 1), Cells(X.Row, 5)).Copy _ (Sheets("Ins").Range("A65000").End(xlUp).Offset(1, 0)) End If Next End Sub ilm'en recopie 15 avec des incoherences "ref"ou "nom prenon adresse" car j'ai des formules dans A4 et C4 (concatener) et si merci
-- eneric
eneric à dit
Si j'ecris se code
For Each x In Range("D4:E1000")
If x.Value Like "p" Then
lig = Sheets("Ins").[A65536].End(3).Row + 1
Sheets("Ins").Range("A" & lig & ":E" & lig).Value = _
Sheets("BD").Range("A" & x.Row & ":E" & x.Row).Value
End If
Next
pour 4 lignes ou ils trouvent "p" il m'en recopie 10 avec
la premiere ligne 4 fois
la 2eme 3 fois etc...
si je mets se code :
For Each X In Sheets("BD").Range("D4:E1000")
If InStr(1, X.Value, "p") <> 0 Then
Range(Cells(X.Row, 1), Cells(X.Row, 5)).Copy _
(Sheets("Ins").Range("A65000").End(xlUp).Offset(1, 0))
End If
Next
End Sub
ilm'en recopie 15 avec des incoherences "ref"ou "nom prenon adresse"
car j'ai des formules dans A4 et C4 (concatener) et si
merci
eneric à dit Si j'ecris se code For Each x In Range("D4:E1000") If x.Value Like "p" Then lig = Sheets("Ins").[A65536].End(3).Row + 1 Sheets("Ins").Range("A" & lig & ":E" & lig).Value = _ Sheets("BD").Range("A" & x.Row & ":E" & x.Row).Value End If Next pour 4 lignes ou ils trouvent "p" il m'en recopie 10 avec la premiere ligne 4 fois la 2eme 3 fois etc... si je mets se code : For Each X In Sheets("BD").Range("D4:E1000") If InStr(1, X.Value, "p") <> 0 Then Range(Cells(X.Row, 1), Cells(X.Row, 5)).Copy _ (Sheets("Ins").Range("A65000").End(xlUp).Offset(1, 0)) End If Next End Sub ilm'en recopie 15 avec des incoherences "ref"ou "nom prenon adresse" car j'ai des formules dans A4 et C4 (concatener) et si merci
-- eneric
eneric
ouais j'ai compris en fait chaque fois qu'il y a une saisie de "p" il relit la plage definie et recopie de nouveau donc il faut changer tout cela
-- eneric
ouais j'ai compris
en fait chaque fois qu'il y a une saisie de "p"
il relit la plage definie et recopie de nouveau
donc il faut changer tout cela
ouais j'ai compris en fait chaque fois qu'il y a une saisie de "p" il relit la plage definie et recopie de nouveau donc il faut changer tout cela
-- eneric
Garette
Re,
Effectivement, s'il y a un P dans la cellule D4 et un autre dans la cellule E4, la ligne sera copier 2 fois. Il faut gérer ceci.
Par exemple :
Sub test() For Each X In Sheets("Feuil1").Range("D4:D1000") If InStr(1, X.Value, "P") <> 0 Then Range(Cells(X.Row, 1), Cells(X.Row, 5)).Copy _ (Sheets("toto").Range("A65000").End(xlUp).Offset(1, 0)) Else If InStr(1, X.Offset(0, 1).Value, "P") <> 0 Then Range(Cells(X.Row, 1), Cells(X.Row, 5)).Copy _ (Sheets("toto").Range("A65000").End(xlUp).Offset(1, 0)) End If End If Next End Sub
On teste la colonne D, si on ne trouve pas de de "P", on teste la colonne E.
Re,
Effectivement, s'il y a un P dans la cellule D4 et un autre dans la cellule
E4, la ligne sera copier 2 fois.
Il faut gérer ceci.
Par exemple :
Sub test()
For Each X In Sheets("Feuil1").Range("D4:D1000")
If InStr(1, X.Value, "P") <> 0 Then
Range(Cells(X.Row, 1), Cells(X.Row, 5)).Copy _
(Sheets("toto").Range("A65000").End(xlUp).Offset(1, 0))
Else
If InStr(1, X.Offset(0, 1).Value, "P") <> 0 Then
Range(Cells(X.Row, 1), Cells(X.Row, 5)).Copy _
(Sheets("toto").Range("A65000").End(xlUp).Offset(1, 0))
End If
End If
Next
End Sub
On teste la colonne D, si on ne trouve pas de de "P", on teste la colonne E.
Effectivement, s'il y a un P dans la cellule D4 et un autre dans la cellule E4, la ligne sera copier 2 fois. Il faut gérer ceci.
Par exemple :
Sub test() For Each X In Sheets("Feuil1").Range("D4:D1000") If InStr(1, X.Value, "P") <> 0 Then Range(Cells(X.Row, 1), Cells(X.Row, 5)).Copy _ (Sheets("toto").Range("A65000").End(xlUp).Offset(1, 0)) Else If InStr(1, X.Offset(0, 1).Value, "P") <> 0 Then Range(Cells(X.Row, 1), Cells(X.Row, 5)).Copy _ (Sheets("toto").Range("A65000").End(xlUp).Offset(1, 0)) End If End If Next End Sub
On teste la colonne D, si on ne trouve pas de de "P", on teste la colonne E.
eneric
oui au depart supposons il y a 50 "p" l'operateur en resaisit 20 tout se reinscrit le lendemain on recommence 302 "p" rebelotte donc on se retrouve avec une floppee de nom chte dis pas
-- eneric
oui
au depart supposons il y a 50 "p"
l'operateur en resaisit 20
tout se reinscrit
le lendemain on recommence 302 "p"
rebelotte
donc on se retrouve avec une floppee de nom chte dis pas
oui au depart supposons il y a 50 "p" l'operateur en resaisit 20 tout se reinscrit le lendemain on recommence 302 "p" rebelotte donc on se retrouve avec une floppee de nom chte dis pas
-- eneric
eneric
en theorie il ne doit pas avoir de "p" dans les 2 comonnes car il y a un paiement par cheque ou espece parla suite je retournerai un msgbox si c'est le cas sinon je cree un bouton macro je mets la procedure dedans car le code est dans la feuille en ce moment je ne reviens que ce soir pour tester donc a + merci
-- eneric
en theorie il ne doit pas avoir de "p" dans les 2 comonnes car il y a
un paiement par cheque ou espece
parla suite je retournerai un msgbox si c'est le cas
sinon je cree un bouton macro je mets la procedure dedans
car le code est dans la feuille en ce moment
je ne reviens que ce soir pour tester
donc a +
merci
en theorie il ne doit pas avoir de "p" dans les 2 comonnes car il y a un paiement par cheque ou espece parla suite je retournerai un msgbox si c'est le cas sinon je cree un bouton macro je mets la procedure dedans car le code est dans la feuille en ce moment je ne reviens que ce soir pour tester donc a + merci
-- eneric
Garette
Ahh.. Je n'avais pas compris comme ça. Il faut donc vérifier si la ligne existe déjà dans le fichier d'arrivée. Dans Toto tu veux remplacer une fiche déjà existante ? Une solution serait de dé-doublonner les fiches dans l'onglet Toto à la fin de la macro de copie...
"eneric" a écrit dans le message de news:
oui au depart supposons il y a 50 "p" l'operateur en resaisit 20 tout se reinscrit le lendemain on recommence 302 "p" rebelotte donc on se retrouve avec une floppee de nom chte dis pas
-- eneric
Ahh..
Je n'avais pas compris comme ça.
Il faut donc vérifier si la ligne existe déjà dans le fichier d'arrivée.
Dans Toto tu veux remplacer une fiche déjà existante ?
Une solution serait de dé-doublonner les fiches dans l'onglet Toto à la fin
de la macro de copie...
"eneric" <eneric.v@cegetel.net> a écrit dans le message de news:
mn.0b1b7d723df907d0.51150@cegetel.net...
oui
au depart supposons il y a 50 "p"
l'operateur en resaisit 20
tout se reinscrit
le lendemain on recommence 302 "p"
rebelotte
donc on se retrouve avec une floppee de nom chte dis pas
Ahh.. Je n'avais pas compris comme ça. Il faut donc vérifier si la ligne existe déjà dans le fichier d'arrivée. Dans Toto tu veux remplacer une fiche déjà existante ? Une solution serait de dé-doublonner les fiches dans l'onglet Toto à la fin de la macro de copie...
"eneric" a écrit dans le message de news:
oui au depart supposons il y a 50 "p" l'operateur en resaisit 20 tout se reinscrit le lendemain on recommence 302 "p" rebelotte donc on se retrouve avec une floppee de nom chte dis pas