OVH Cloud OVH Cloud

Copier formule

4 réponses
Avatar
Denys
Bonjour à tous,

Une petite question avant la fin de semaine.... Dans la macro qui suit,
Excel ne me donne que le résultat devant apparaitre dans la dernière cellule
dans toutes les cellules !!!

Voici la macro qui a pour but de convertir des dates format texte en format
date:

Sub conversion()

Dim plg As Range, Cell As Range
Dim NomFeuille As String

Ligne = Range("M65536").End(xlUp).Row

NomFeuille = "sheet1"

With Worksheets("sheet1")
Set plg = .Range("M2:M" & .Range("M65536").End(xlUp).Row)
End With

For Each Cell In plg
Cell.Offset(, 5).FormulaArray = "=DATE(LEFT($M$" & Ligne &
",4),RIGHT(LEFT($M$" & Ligne & ",6),2),RIGHT($M$" & Ligne & ",2))"
Next Cell
End Sub

Le résultat affiché dans toutes les cellules est le suivant:
=DATE(LEFT($M$328,4),RIGHT(LEFT($M$328,6),2),RIGHT($M$328,2))

328 étant la dernière ligne. En fait ce que je veux, c'est qu'Excel écrive
$M$5 à la ligne 5, $M$6 à la ligne 6, etc....

Voyez-vous ou j'ai erré??

Merci pour votre temps

Denys

4 réponses

Avatar
Philippe.R
Bonjour Denys,
Regarde avec :


for lg=5 to ligne
Cell.Offset(, 5).FormulaArray = "ÚTE(LEFT($M$" & lg & _
",4),RIGHT(LEFT($M$" & lg & ",6),2),RIGHT($M$" & lg & ",2))"
lg=lg+1

End Sub


--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Denys" a écrit dans le message de news:

Bonjour à tous,

Une petite question avant la fin de semaine.... Dans la macro qui suit,
Excel ne me donne que le résultat devant apparaitre dans la dernière cellule
dans toutes les cellules !!!

Voici la macro qui a pour but de convertir des dates format texte en format
date:

Sub conversion()

Dim plg As Range, Cell As Range
Dim NomFeuille As String

Ligne = Range("M65536").End(xlUp).Row

NomFeuille = "sheet1"

With Worksheets("sheet1")
Set plg = .Range("M2:M" & .Range("M65536").End(xlUp).Row)
End With

For Each Cell In plg
Cell.Offset(, 5).FormulaArray = "ÚTE(LEFT($M$" & Ligne &
",4),RIGHT(LEFT($M$" & Ligne & ",6),2),RIGHT($M$" & Ligne & ",2))"
Next Cell
End Sub

Le résultat affiché dans toutes les cellules est le suivant:
ÚTE(LEFT($M$328,4),RIGHT(LEFT($M$328,6),2),RIGHT($M$328,2))

328 étant la dernière ligne. En fait ce que je veux, c'est qu'Excel écrive
$M$5 à la ligne 5, $M$6 à la ligne 6, etc....

Voyez-vous ou j'ai erré??

Merci pour votre temps

Denys




Avatar
Denys
Bonjour Philippe,

Merci infiniment pour ta réponse.... Je n'aurais jamais trouvé ça tout seul
!!!

Bonne fin de semaine

Denys


Bonjour Denys,
Regarde avec :


for lg=5 to ligne
Cell.Offset(, 5).FormulaArray = "ÚTE(LEFT($M$" & lg & _
",4),RIGHT(LEFT($M$" & lg & ",6),2),RIGHT($M$" & lg & ",2))"
lg=lg+1

End Sub


--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Denys" a écrit dans le message de news:

Bonjour à tous,

Une petite question avant la fin de semaine.... Dans la macro qui suit,
Excel ne me donne que le résultat devant apparaitre dans la dernière cellule
dans toutes les cellules !!!

Voici la macro qui a pour but de convertir des dates format texte en format
date:

Sub conversion()

Dim plg As Range, Cell As Range
Dim NomFeuille As String

Ligne = Range("M65536").End(xlUp).Row

NomFeuille = "sheet1"

With Worksheets("sheet1")
Set plg = .Range("M2:M" & .Range("M65536").End(xlUp).Row)
End With

For Each Cell In plg
Cell.Offset(, 5).FormulaArray = "ÚTE(LEFT($M$" & Ligne &
",4),RIGHT(LEFT($M$" & Ligne & ",6),2),RIGHT($M$" & Ligne & ",2))"
Next Cell
End Sub

Le résultat affiché dans toutes les cellules est le suivant:
ÚTE(LEFT($M$328,4),RIGHT(LEFT($M$328,6),2),RIGHT($M$328,2))

328 étant la dernière ligne. En fait ce que je veux, c'est qu'Excel écrive
$M$5 à la ligne 5, $M$6 à la ligne 6, etc....

Voyez-vous ou j'ai erré??

Merci pour votre temps

Denys








Avatar
Denys
Bonjour Philippe,

J'ai inséré ton bout de formule, et malheureusement ça ne fonctionne pas....
Excel me dit Objet variable or With block not set.

Aurais-tu une idée?

Merci

Denys


Bonjour Denys,
Regarde avec :


for lg=5 to ligne
Cell.Offset(, 5).FormulaArray = "ÚTE(LEFT($M$" & lg & _
",4),RIGHT(LEFT($M$" & lg & ",6),2),RIGHT($M$" & lg & ",2))"
lg=lg+1

End Sub


--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Denys" a écrit dans le message de news:

Bonjour à tous,

Une petite question avant la fin de semaine.... Dans la macro qui suit,
Excel ne me donne que le résultat devant apparaitre dans la dernière cellule
dans toutes les cellules !!!

Voici la macro qui a pour but de convertir des dates format texte en format
date:

Sub conversion()

Dim plg As Range, Cell As Range
Dim NomFeuille As String

Ligne = Range("M65536").End(xlUp).Row

NomFeuille = "sheet1"

With Worksheets("sheet1")
Set plg = .Range("M2:M" & .Range("M65536").End(xlUp).Row)
End With

For Each Cell In plg
Cell.Offset(, 5).FormulaArray = "ÚTE(LEFT($M$" & Ligne &
",4),RIGHT(LEFT($M$" & Ligne & ",6),2),RIGHT($M$" & Ligne & ",2))"
Next Cell
End Sub

Le résultat affiché dans toutes les cellules est le suivant:
ÚTE(LEFT($M$328,4),RIGHT(LEFT($M$328,6),2),RIGHT($M$328,2))

328 étant la dernière ligne. En fait ce que je veux, c'est qu'Excel écrive
$M$5 à la ligne 5, $M$6 à la ligne 6, etc....

Voyez-vous ou j'ai erré??

Merci pour votre temps

Denys








Avatar
Philippe.R
Bon{j,s}o{u,i}r® Denys,

Peux tu m'envoyer un bout du classeur sur lequel tu tentes d'appliquer cette macro ,
J'essaierai de regarder ça rapidement.
--
Amicales Salutations
XL 97 / 2000 / 2002

"Denys" a écrit dans le message de news:

Bonjour Philippe,

J'ai inséré ton bout de formule, et malheureusement ça ne fonctionne pas....
Excel me dit Objet variable or With block not set.

Aurais-tu une idée?

Merci

Denys


Bonjour Denys,
Regarde avec :


for lg=5 to ligne
Cell.Offset(, 5).FormulaArray = "ÚTE(LEFT($M$" & lg & _
",4),RIGHT(LEFT($M$" & lg & ",6),2),RIGHT($M$" & lg & ",2))"
lg=lg+1

End Sub


--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Denys" a écrit dans le message de news:

Bonjour à tous,

Une petite question avant la fin de semaine.... Dans la macro qui suit,
Excel ne me donne que le résultat devant apparaitre dans la dernière cellule
dans toutes les cellules !!!

Voici la macro qui a pour but de convertir des dates format texte en format
date:

Sub conversion()

Dim plg As Range, Cell As Range
Dim NomFeuille As String

Ligne = Range("M65536").End(xlUp).Row

NomFeuille = "sheet1"

With Worksheets("sheet1")
Set plg = .Range("M2:M" & .Range("M65536").End(xlUp).Row)
End With

For Each Cell In plg
Cell.Offset(, 5).FormulaArray = "ÚTE(LEFT($M$" & Ligne &
",4),RIGHT(LEFT($M$" & Ligne & ",6),2),RIGHT($M$" & Ligne & ",2))"
Next Cell
End Sub

Le résultat affiché dans toutes les cellules est le suivant:
ÚTE(LEFT($M$328,4),RIGHT(LEFT($M$328,6),2),RIGHT($M$328,2))

328 étant la dernière ligne. En fait ce que je veux, c'est qu'Excel écrive
$M$5 à la ligne 5, $M$6 à la ligne 6, etc....

Voyez-vous ou j'ai erré??

Merci pour votre temps

Denys