OVH Cloud OVH Cloud

Modifier une procédure

8 réponses
Avatar
Didier Novarin
Bonjour
J'ai cette procédure qui fonctionne à merveille
Je souhaite la modifier
Prendre les 30 premières lignes et les mettre dans l'autre cellule et non la
moitié
Je vous remercie
Didier

Sub destack()
With Cells(1, 1)
.Offset(0, 1) = Mid(.Text, 1, Len(.Text) / 2)
.Offset(0, 1).ColumnWidth = .ColumnWidth
.Offset(0, 2) = Mid(.Text, 1 + Len(.Text) / 2, 999)
.Offset(0, 2).ColumnWidth = .ColumnWidth
End With
End Sub

8 réponses

Avatar
JB
Bonjour,

Sub essai2()
n = 0
For i = 1 To Len([A1])
If Asc(Mid([A1], i, 1)) = 10 Then
n = n + 1
If n = 30 Then Exit For
End If
Next i
[B1] = Left([A1], i - 1)
[C1] = Mid([A1], i + 1)
End Sub

JB


Bonjour
J'ai cette procédure qui fonctionne à merveille
Je souhaite la modifier
Prendre les 30 premières lignes et les mettre dans l'autre cellule et n on la
moitié
Je vous remercie
Didier

Sub destack()
With Cells(1, 1)
.Offset(0, 1) = Mid(.Text, 1, Len(.Text) / 2)
.Offset(0, 1).ColumnWidth = .ColumnWidth
.Offset(0, 2) = Mid(.Text, 1 + Len(.Text) / 2, 999)
.Offset(0, 2).ColumnWidth = .ColumnWidth
End With
End Sub


Avatar
Jacky
Bonjour,

Ceci...
'--------
Sub destack()
With Cells(1, 1)
.Offset(0, 1) = Left(.Text, 30)
.Offset(0, 1).ColumnWidth = .ColumnWidth
.Offset(0, 2) = Mid(.Text, 31, Len(.Text))
.Offset(0, 2).ColumnWidth = .ColumnWidth
End With
End Sub
'---------
Salutations
JJ

"Didier Novarin" a écrit dans le message de
news:
Bonjour
J'ai cette procédure qui fonctionne à merveille
Je souhaite la modifier
Prendre les 30 premières lignes et les mettre dans l'autre cellule et non
la

moitié
Je vous remercie
Didier

Sub destack()
With Cells(1, 1)
.Offset(0, 1) = Mid(.Text, 1, Len(.Text) / 2)
.Offset(0, 1).ColumnWidth = .ColumnWidth
.Offset(0, 2) = Mid(.Text, 1 + Len(.Text) / 2, 999)
.Offset(0, 2).ColumnWidth = .ColumnWidth
End With
End Sub




Avatar
Didier Novarin
Merci beaucoup JB
Encore une fois, c'est parfait !
Je deviens gourmand ;-)
Est-il possible de faire la chose suivante
Quelque soit le nombre de lignes dans la cellule A1
Mettre les 30 premières dans la cellule B1
Les 30 suivantes dans la C1
Les 30 suivantes dans la D1
etc.
Didier



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

Bonjour,

Sub essai2()
n = 0
For i = 1 To Len([A1])
If Asc(Mid([A1], i, 1)) = 10 Then
n = n + 1
If n = 30 Then Exit For
End If
Next i
[B1] = Left([A1], i - 1)
[C1] = Mid([A1], i + 1)
End Sub

JB


Bonjour
J'ai cette procédure qui fonctionne à merveille
Je souhaite la modifier
Prendre les 30 premières lignes et les mettre dans l'autre cellule et non
la
moitié
Je vous remercie
Didier

Sub destack()
With Cells(1, 1)
.Offset(0, 1) = Mid(.Text, 1, Len(.Text) / 2)
.Offset(0, 1).ColumnWidth = .ColumnWidth
.Offset(0, 2) = Mid(.Text, 1 + Len(.Text) / 2, 999)
.Offset(0, 2).ColumnWidth = .ColumnWidth
End With
End Sub


Avatar
Didier Novarin
Bonjour Jacky
Cela ne fonctionne pas normalement, cela tronque un peu bizarrement.
Je te remercie beaucoup
Didier


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

Bonjour,

Ceci...
'--------
Sub destack()
With Cells(1, 1)
.Offset(0, 1) = Left(.Text, 30)
.Offset(0, 1).ColumnWidth = .ColumnWidth
.Offset(0, 2) = Mid(.Text, 31, Len(.Text))
.Offset(0, 2).ColumnWidth = .ColumnWidth
End With
End Sub
'---------
Salutations
JJ

"Didier Novarin" a écrit dans le message de
news:
Bonjour
J'ai cette procédure qui fonctionne à merveille
Je souhaite la modifier
Prendre les 30 premières lignes et les mettre dans l'autre cellule et non
la

moitié
Je vous remercie
Didier

Sub destack()
With Cells(1, 1)
.Offset(0, 1) = Mid(.Text, 1, Len(.Text) / 2)
.Offset(0, 1).ColumnWidth = .ColumnWidth
.Offset(0, 2) = Mid(.Text, 1 + Len(.Text) / 2, 999)
.Offset(0, 2).ColumnWidth = .ColumnWidth
End With
End Sub








Avatar
Jacky
Re...
Oui, excuse, j'ai lu 30 premières "lettres" au lieu de "lignes".
JB, une fois de plus à donné la solution

JJ

"Didier Novarin" a écrit dans le message de
news:e3%
Bonjour Jacky
Cela ne fonctionne pas normalement, cela tronque un peu bizarrement.
Je te remercie beaucoup
Didier


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

Bonjour,

Ceci...
'--------
Sub destack()
With Cells(1, 1)
.Offset(0, 1) = Left(.Text, 30)
.Offset(0, 1).ColumnWidth = .ColumnWidth
.Offset(0, 2) = Mid(.Text, 31, Len(.Text))
.Offset(0, 2).ColumnWidth = .ColumnWidth
End With
End Sub
'---------
Salutations
JJ

"Didier Novarin" a écrit dans le message de
news:
Bonjour
J'ai cette procédure qui fonctionne à merveille
Je souhaite la modifier
Prendre les 30 premières lignes et les mettre dans l'autre cellule et
non



la
moitié
Je vous remercie
Didier

Sub destack()
With Cells(1, 1)
.Offset(0, 1) = Mid(.Text, 1, Len(.Text) / 2)
.Offset(0, 1).ColumnWidth = .ColumnWidth
.Offset(0, 2) = Mid(.Text, 1 + Len(.Text) / 2, 999)
.Offset(0, 2).ColumnWidth = .ColumnWidth
End With
End Sub












Avatar
Didier Novarin
Je te remercie beaucoup cependant de t'être penché sur mon problème et te
souhaite une très bonne journée
Didier

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

Re...
Oui, excuse, j'ai lu 30 premières "lettres" au lieu de "lignes".
JB, une fois de plus à donné la solution

JJ

"Didier Novarin" a écrit dans le message de
news:e3%
Bonjour Jacky
Cela ne fonctionne pas normalement, cela tronque un peu bizarrement.
Je te remercie beaucoup
Didier


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

Bonjour,

Ceci...
'--------
Sub destack()
With Cells(1, 1)
.Offset(0, 1) = Left(.Text, 30)
.Offset(0, 1).ColumnWidth = .ColumnWidth
.Offset(0, 2) = Mid(.Text, 31, Len(.Text))
.Offset(0, 2).ColumnWidth = .ColumnWidth
End With
End Sub
'---------
Salutations
JJ

"Didier Novarin" a écrit dans le message de
news:
Bonjour
J'ai cette procédure qui fonctionne à merveille
Je souhaite la modifier
Prendre les 30 premières lignes et les mettre dans l'autre cellule et
non



la
moitié
Je vous remercie
Didier

Sub destack()
With Cells(1, 1)
.Offset(0, 1) = Mid(.Text, 1, Len(.Text) / 2)
.Offset(0, 1).ColumnWidth = .ColumnWidth
.Offset(0, 2) = Mid(.Text, 1 + Len(.Text) / 2, 999)
.Offset(0, 2).ColumnWidth = .ColumnWidth
End With
End Sub
















Avatar
JB
Pas totalement testé:

Sub essai3()
If Right([A1], 1) <> Chr(10) Then [A1] = [A1] & Chr(10)
[B1].Select
témoin = True
début = 1
i = 0
Do While i < Len([A1])
n = 0
Do While n < 30 And i < Len([A1])
i = i + 1
If Asc(Mid([A1], i, 1)) = 10 Then
n = n + 1
End If
Loop
ActiveCell.Offset(0, b) = Mid([A1], début, i - début)
début = i + 1
b = b + 1
Loop
ActiveCell.Offset(0, b) = Mid([A1], début)
End Sub

JB


Je te remercie beaucoup cependant de t'être penché sur mon problème et te
souhaite une très bonne journée
Didier

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

Re...
Oui, excuse, j'ai lu 30 premières "lettres" au lieu de "lignes".
JB, une fois de plus à donné la solution

JJ

"Didier Novarin" a écrit dans le message de
news:e3%
Bonjour Jacky
Cela ne fonctionne pas normalement, cela tronque un peu bizarrement.
Je te remercie beaucoup
Didier


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

Bonjour,

Ceci...
'--------
Sub destack()
With Cells(1, 1)
.Offset(0, 1) = Left(.Text, 30)
.Offset(0, 1).ColumnWidth = .ColumnWidth
.Offset(0, 2) = Mid(.Text, 31, Len(.Text))
.Offset(0, 2).ColumnWidth = .ColumnWidth
End With
End Sub
'---------
Salutations
JJ

"Didier Novarin" a écrit dans le messa ge de
news:
Bonjour
J'ai cette procédure qui fonctionne à merveille
Je souhaite la modifier
Prendre les 30 premières lignes et les mettre dans l'autre cellul e et
non



la
moitié
Je vous remercie
Didier

Sub destack()
With Cells(1, 1)
.Offset(0, 1) = Mid(.Text, 1, Len(.Text) / 2)
.Offset(0, 1).ColumnWidth = .ColumnWidth
.Offset(0, 2) = Mid(.Text, 1 + Len(.Text) / 2, 999)
.Offset(0, 2).ColumnWidth = .ColumnWidth
End With
End Sub


















Avatar
Didier Novarin
Bravo et merci, c'est vraiment parfait !
Très bonne journée
Didier

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


Pas totalement testé:

Sub essai3()
If Right([A1], 1) <> Chr(10) Then [A1] = [A1] & Chr(10)
[B1].Select
témoin = True
début = 1
i = 0
Do While i < Len([A1])
n = 0
Do While n < 30 And i < Len([A1])
i = i + 1
If Asc(Mid([A1], i, 1)) = 10 Then
n = n + 1
End If
Loop
ActiveCell.Offset(0, b) = Mid([A1], début, i - début)
début = i + 1
b = b + 1
Loop
ActiveCell.Offset(0, b) = Mid([A1], début)
End Sub

JB


Je te remercie beaucoup cependant de t'être penché sur mon problème et te
souhaite une très bonne journée
Didier

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

Re...
Oui, excuse, j'ai lu 30 premières "lettres" au lieu de "lignes".
JB, une fois de plus à donné la solution

JJ

"Didier Novarin" a écrit dans le message de
news:e3%
Bonjour Jacky
Cela ne fonctionne pas normalement, cela tronque un peu bizarrement.
Je te remercie beaucoup
Didier


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

Bonjour,

Ceci...
'--------
Sub destack()
With Cells(1, 1)
.Offset(0, 1) = Left(.Text, 30)
.Offset(0, 1).ColumnWidth = .ColumnWidth
.Offset(0, 2) = Mid(.Text, 31, Len(.Text))
.Offset(0, 2).ColumnWidth = .ColumnWidth
End With
End Sub
'---------
Salutations
JJ

"Didier Novarin" a écrit dans le message
de
news:
Bonjour
J'ai cette procédure qui fonctionne à merveille
Je souhaite la modifier
Prendre les 30 premières lignes et les mettre dans l'autre cellule
et
non



la
moitié
Je vous remercie
Didier

Sub destack()
With Cells(1, 1)
.Offset(0, 1) = Mid(.Text, 1, Len(.Text) / 2)
.Offset(0, 1).ColumnWidth = .ColumnWidth
.Offset(0, 2) = Mid(.Text, 1 + Len(.Text) / 2, 999)
.Offset(0, 2).ColumnWidth = .ColumnWidth
End With
End Sub