OVH Cloud OVH Cloud

déplacement feuille

4 réponses
Avatar
Michel (pen ar bed)
Bonsoir,

Le bout de code suivant fonctionne parfaitement mais....
si je déplace une feuille de la fin au début du classeur il ne se passe
plus rien ni copie ni erreur.
et je ne pige pas pourquoi, les feuilles ne changent pas de nom ni de
numéro

Une explication ?
Merci


------------------------------------------------------------------------
ActiveSheet.Cells.Clear
ligne = 1
For i = 1 To Sheets(1).[D65000].End(xlUp).Row
If Sheets(1).Cells(i, "c") = "PS" Then
Sheets(1).Cells(i, 1).Resize(, 4).Copy Sheets(2).Cells(ligne, 1)
ligne = ligne + 1
End If
Next i
------------------------------------------------------------------------

4 réponses

Avatar
Papyjac
Bonjour Michel,

D'abord, il y a une problème de positionnement au départ, si tu es déjà la
feuille alors tu effaces tout et puis il ne trouve plus rien

Ensuite sheets(1) n'est pas la feuille qui contient ta liste alors tu prends
la 1ère qui contient autre chose

Enfin, quand tu dis que les feuilles ne changent pas de noms : c'est exact,
mais par contre elles changent bien d'index


--
Papyjac


"Michel (pen ar bed)" a écrit :

Bonsoir,

Le bout de code suivant fonctionne parfaitement mais....
si je déplace une feuille de la fin au début du classeur il ne se passe
plus rien ni copie ni erreur.
et je ne pige pas pourquoi, les feuilles ne changent pas de nom ni de
numéro

Une explication ?
Merci


------------------------------------------------------------------------
ActiveSheet.Cells.Clear
ligne = 1
For i = 1 To Sheets(1).[D65000].End(xlUp).Row
If Sheets(1).Cells(i, "c") = "PS" Then
Sheets(1).Cells(i, 1).Resize(, 4).Copy Sheets(2).Cells(ligne, 1)
ligne = ligne + 1
End If
Next i
------------------------------------------------------------------------





Avatar
Michel (pen ar bed)
Papyjac a présenté l'énoncé suivant :
Bonjour Michel,

D'abord, il y a une problème de positionnement au départ, si tu es déjà la
feuille alors tu effaces tout et puis il ne trouve plus rien



c'est du code qui est appelé avec Worksheet_Activate donc j'efface en
entrant c'est pas bon ?

Ensuite sheets(1) n'est pas la feuille qui contient ta liste alors tu prends
la 1ère qui contient autre chose



Ben si la feuille qui contient la liste ou sont les données à copier
est bien la feuille Sheets(1)

Enfin, quand tu dis que les feuilles ne changent pas de noms : c'est exact,
mais par contre elles changent bien d'index



Comment je fais pour pour remedier à cela ?

Merci
Avatar
Jacky
Bonsoir,
Sheets(1) est la position de la feuille,
Si tu déplaces cette feuille, ce sera la suivante qui sera Sheets(1) peu
importe son nom.
Teste le fichier joint , change les feuilles de place, renomme la feuil1 et
tu comprendras.
http://cjoint.com/?jhwdxMEAJF
--
Salutations
JJ


"Michel (pen ar bed)" a écrit dans le message de news:

Bonsoir,

Le bout de code suivant fonctionne parfaitement mais....
si je déplace une feuille de la fin au début du classeur il ne se passe
plus rien ni copie ni erreur.
et je ne pige pas pourquoi, les feuilles ne changent pas de nom ni de
numéro

Une explication ?
Merci


------------------------------------------------------------------------
ActiveSheet.Cells.Clear
ligne = 1
For i = 1 To Sheets(1).[D65000].End(xlUp).Row
If Sheets(1).Cells(i, "c") = "PS" Then
Sheets(1).Cells(i, 1).Resize(, 4).Copy Sheets(2).Cells(ligne, 1)
ligne = ligne + 1
End If
Next i
------------------------------------------------------------------------




Avatar
Michel (pen ar bed)
Jacky a formulé ce dimanche :
Bonsoir,
Sheets(1) est la position de la feuille,
Si tu déplaces cette feuille, ce sera la suivante qui sera Sheets(1) peu
importe son nom.
Teste le fichier joint , change les feuilles de place, renomme la feuil1 et
tu comprendras.
http://cjoint.com/?jhwdxMEAJF
--
Salutations
JJ




OK j'ai pigé merci pour l'exemple

Bonne fin de soirée

M.