OVH Cloud OVH Cloud

Problème de copie de ligne et de format

4 réponses
Avatar
Kat999
Bonjour tout le monde,

La macro que je vous expose i=E7i ne marche pas pour une=20
raison que je n'arrive pas =E0 d=E9terminer.

Private Sub CommandButton1_Click()
Dim ligne, i As Integer
Dim Test, Resultat As Object

Set Test =3D ThisWorkbook.Worksheets("Test")
Set Resultat =3D ThisWorkbook.Worksheets("Resultat")

i =3D 1

For ligne =3D Test.UsedRange.Rows.Count + Test.UsedRange.Row=20
To 1 Step -1
If Format(Cells(ligne, 3), "hh:mm:ss") =3D "21:30:00" Then
Test.Rows(ligne).Copy (Resultat.Rows(i)) 'PROBLEME ICI'
i =3D i + 1
End If

Next ligne

End Sub

Pourriez-vous me venir en aide svp, =E7a fait longtemps que=20
je cherche sans succ=E8s.=20
J'aimerais que la copie des lignes conserve le format,=20
comment pourrai-je faire?

En vous remerciant par avance,

4 réponses

Avatar
Frédéric Sigonneau
Bonsoir,

Et quel est-il ce format à reproduire/conserver sur les lignes copiées ?

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour tout le monde,

La macro que je vous expose içi ne marche pas pour une
raison que je n'arrive pas à déterminer.

Private Sub CommandButton1_Click()
Dim ligne, i As Integer
Dim Test, Resultat As Object

Set Test = ThisWorkbook.Worksheets("Test")
Set Resultat = ThisWorkbook.Worksheets("Resultat")

i = 1

For ligne = Test.UsedRange.Rows.Count + Test.UsedRange.Row
To 1 Step -1
If Format(Cells(ligne, 3), "hh:mm:ss") = "21:30:00" Then
Test.Rows(ligne).Copy (Resultat.Rows(i)) 'PROBLEME ICI'
i = i + 1
End If

Next ligne

End Sub

Pourriez-vous me venir en aide svp, ça fait longtemps que
je cherche sans succès.
J'aimerais que la copie des lignes conserve le format,
comment pourrai-je faire?

En vous remerciant par avance,


Avatar
Kat999
C'est le format heure. Sinon en recopiant il transforme le
code heure en chiffre compris entre 0 et 1 (c'est en fait
le rôle de la fonction HEURE() ), en fait il me faudrait
la fonction inverse de HEURE() en VBA.
Merci

-----Message d'origine-----
Bonsoir,

Et quel est-il ce format à reproduire/conserver sur les
lignes copiées ?


FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour tout le monde,

La macro que je vous expose içi ne marche pas pour une
raison que je n'arrive pas à déterminer.

Private Sub CommandButton1_Click()
Dim ligne, i As Integer
Dim Test, Resultat As Object

Set Test = ThisWorkbook.Worksheets("Test")
Set Resultat = ThisWorkbook.Worksheets("Resultat")

i = 1

For ligne = Test.UsedRange.Rows.Count +
Test.UsedRange.Row


To 1 Step -1
If Format(Cells(ligne, 3), "hh:mm:ss") = "21:30:00" Then
Test.Rows(ligne).Copy (Resultat.Rows(i)) 'PROBLEME ICI'
i = i + 1
End If

Next ligne

End Sub

Pourriez-vous me venir en aide svp, ça fait longtemps
que


je cherche sans succès.
J'aimerais que la copie des lignes conserve le format,
comment pourrai-je faire?

En vous remerciant par avance,


.




Avatar
Frédéric Sigonneau
Bonjour,

Essaye avec cette modification de ton code :

Private Sub CommandButton1_Click()
Dim ligne, i As Integer
Dim Test, Resultat As Object

Set Test = ThisWorkbook.Worksheets("Test")
Set Resultat = ThisWorkbook.Worksheets("Resultat")

i = 1

For ligne = Test.UsedRange.Rows.Count + Test.UsedRange.Row
To 1 Step -1
If Format(Cells(ligne, 3), "hh:mm:ss") = "21:30:00" Then
Test.Rows(ligne).Copy Resultat.Rows(i) 'PROBLEME ICI'
'solution possible :
Resultat.Rows(i).NumberFormat = "hh:mm:ss"
i = i + 1
End If

Next ligne

End Sub

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


C'est le format heure. Sinon en recopiant il transforme le
code heure en chiffre compris entre 0 et 1 (c'est en fait
le rôle de la fonction HEURE() ), en fait il me faudrait
la fonction inverse de HEURE() en VBA.
Merci

-----Message d'origine-----
Bonsoir,

Et quel est-il ce format à reproduire/conserver sur les
lignes copiées ?


FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour tout le monde,

La macro que je vous expose içi ne marche pas pour une
raison que je n'arrive pas à déterminer.

Private Sub CommandButton1_Click()
Dim ligne, i As Integer
Dim Test, Resultat As Object

Set Test = ThisWorkbook.Worksheets("Test")
Set Resultat = ThisWorkbook.Worksheets("Resultat")

i = 1

For ligne = Test.UsedRange.Rows.Count +
Test.UsedRange.Row


To 1 Step -1
If Format(Cells(ligne, 3), "hh:mm:ss") = "21:30:00" Then
Test.Rows(ligne).Copy (Resultat.Rows(i)) 'PROBLEME ICI'
i = i + 1
End If

Next ligne

End Sub

Pourriez-vous me venir en aide svp, ça fait longtemps
que


je cherche sans succès.
J'aimerais que la copie des lignes conserve le format,
comment pourrai-je faire?

En vous remerciant par avance,


.






Avatar
Frédéric Sigonneau
Re,

Quel est le problème rencontré avec cette instruction ? Message d'erreur ?
Si les données ne sont pas confidentielles, un petit extrait de ton ficher dans
ma bal perso ferait peut-être gagner du temps..

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Ca n'a pas l'air de marcher malheureusement. Il semble
qu'il ait un problème avec le NumberFormat.

-----Message d'origine-----
Bonjour,

Essaye avec cette modification de ton code :

Private Sub CommandButton1_Click()
Dim ligne, i As Integer
Dim Test, Resultat As Object

Set Test = ThisWorkbook.Worksheets("Test")
Set Resultat = ThisWorkbook.Worksheets("Resultat")

i = 1

For ligne = Test.UsedRange.Rows.Count +
Test.UsedRange.Row

To 1 Step -1
If Format(Cells(ligne, 3), "hh:mm:ss") = "21:30:00" Then
Test.Rows(ligne).Copy Resultat.Rows(i) 'PROBLEME ICI'
'solution possible :
Resultat.Rows(i).NumberFormat = "hh:mm:ss"
i = i + 1
End If

Next ligne

End Sub

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


C'est le format heure. Sinon en recopiant il transforme
le


code heure en chiffre compris entre 0 et 1 (c'est en
fait


le rôle de la fonction HEURE() ), en fait il me faudrait
la fonction inverse de HEURE() en VBA.
Merci

-----Message d'origine-----
Bonsoir,

Et quel est-il ce format à reproduire/conserver sur les
lignes copiées ?


FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma
bal !





Bonjour tout le monde,

La macro que je vous expose içi ne marche pas pour
une




raison que je n'arrive pas à déterminer.

Private Sub CommandButton1_Click()
Dim ligne, i As Integer
Dim Test, Resultat As Object

Set Test = ThisWorkbook.Worksheets("Test")
Set Resultat = ThisWorkbook.Worksheets("Resultat")

i = 1

For ligne = Test.UsedRange.Rows.Count +
Test.UsedRange.Row


To 1 Step -1
If Format(Cells(ligne, 3), "hh:mm:ss") = "21:30:00"
Then




Test.Rows(ligne).Copy (Resultat.Rows(i)) 'PROBLEME
ICI'




i = i + 1
End If

Next ligne

End Sub

Pourriez-vous me venir en aide svp, ça fait longtemps
que


je cherche sans succès.
J'aimerais que la copie des lignes conserve le
format,




comment pourrai-je faire?

En vous remerciant par avance,


.




.