Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

onglets recup de cellule

7 réponses
Avatar
stephprod
Bonjour,

j'ai un fichier excel qui contient des feuilles nommées "P_ etc" et en
cellule L4 jusqu'à L13 j'ai un chiffre compsé de deux caractère au max,
d'un point virgule et d'une chaine de texte... exemple

1;TATA
50;TOTO
99;TITI
j aimerais qu'une macro me sépare les deux dans chaque feuille et dans
chaque cellule de L4 à L13
et me les stockes sous forment de tableau dans la feuille PARAM de mon
classeur actif commencant par la cellule
AP1

je vous remercie par avance...

stephane

7 réponses

Avatar
papou
Bonjour
Adapte à ton cas :
Sub SepareLesDonnees()
Dim f As Worksheet
For Each f In Sheets
f.Range("A1:A3").TextToColumns Destination:=Range("A1"),
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:úlse,
Tab:úlse, _
Semicolon:=True, Comma:úlse, Space:úlse, Other:úlse, FieldInfo
_
:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
Next f
End Sub

Cordialement
Pascal

"stephprod" a écrit dans le message de news:
47cd653d$0$902$
Bonjour,

j'ai un fichier excel qui contient des feuilles nommées "P_ etc" et en
cellule L4 jusqu'à L13 j'ai un chiffre compsé de deux caractère au max,
d'un point virgule et d'une chaine de texte... exemple

1;TATA
50;TOTO
99;TITI
j aimerais qu'une macro me sépare les deux dans chaque feuille et dans
chaque cellule de L4 à L13
et me les stockes sous forment de tableau dans la feuille PARAM de mon
classeur actif commencant par la cellule
AP1

je vous remercie par avance...

stephane





Avatar
Corto
Bonjour stephprod;

Sub OngletRecapDeCellule()
Set XDST = Sheets("PARAM").Range("AP1")
For Each XSH In ThisWorkbook.Worksheets
If XSH.Name <> "PARAM" Then
XSH.Range("L4:L13").TextToColumns
Destination:=XSH.Range("L4"), _
DataType:=xlDelimited, Semicolon:=True
XSH.Range("L4:M13").Copy Destination:=XDST
Set XDST = XDST.Offset(0, 2)
End If
Next XSH
End Sub

Corto

Bonjour,

j'ai un fichier excel qui contient des feuilles nommées "P_ etc" et e n
cellule L4 jusqu'à L13 j'ai un chiffre compsé de deux caractère au max,
d'un point virgule et d'une chaine de texte... exemple

1;TATA
50;TOTO
99;TITI
j aimerais qu'une macro me sépare les deux dans chaque feuille et dan s
chaque cellule de L4 à L13
et me les stockes sous forment de tableau dans la feuille PARAM de mon
classeur actif commencant par la cellule
AP1

je vous remercie par avance...

stephane






Avatar
Daniel.C
Bonjour.
Essaie (non testée) :

Sub test()
Dim sh As Worksheet, ligne As Long, c As Range

With Sheets("PARAM")
For Each sh In Sheets
If Left(sh.Name, 2) = "P_" Then
For Each c In sh.Range("L4:L13")
.[AP1].Offset(ligne) = Split(c, ";")(0)
.[AP1].Offset(ligne, 1) = Split(c, ";")(1)
ligne = ligne + 1
Next c
End If
Next
End With
End Sub

Daniel
"stephprod" a écrit dans le message de news:
47cd653d$0$902$
Bonjour,

j'ai un fichier excel qui contient des feuilles nommées "P_ etc" et en
cellule L4 jusqu'à L13 j'ai un chiffre compsé de deux caractère au max,
d'un point virgule et d'une chaine de texte... exemple

1;TATA
50;TOTO
99;TITI
j aimerais qu'une macro me sépare les deux dans chaque feuille et dans
chaque cellule de L4 à L13
et me les stockes sous forment de tableau dans la feuille PARAM de mon
classeur actif commencant par la cellule
AP1

je vous remercie par avance...

stephane





Avatar
stephprod
ca marche mais pour qu'un seul onglet "p_ "
il decale pas pour les autres feilles
merci quand meme



"Daniel.C" a écrit dans le message de news:
%
Bonjour.
Essaie (non testée) :

Sub test()
Dim sh As Worksheet, ligne As Long, c As Range

With Sheets("PARAM")
For Each sh In Sheets
If Left(sh.Name, 2) = "P_" Then
For Each c In sh.Range("L4:L13")
.[AP1].Offset(ligne) = Split(c, ";")(0)
.[AP1].Offset(ligne, 1) = Split(c, ";")(1)
ligne = ligne + 1
Next c
End If
Next
End With
End Sub

Daniel
"stephprod" a écrit dans le message de news:
47cd653d$0$902$
Bonjour,

j'ai un fichier excel qui contient des feuilles nommées "P_ etc" et en
cellule L4 jusqu'à L13 j'ai un chiffre compsé de deux caractère au max,
d'un point virgule et d'une chaine de texte... exemple

1;TATA
50;TOTO
99;TITI
j aimerais qu'une macro me sépare les deux dans chaque feuille et dans
chaque cellule de L4 à L13
et me les stockes sous forment de tableau dans la feuille PARAM de mon
classeur actif commencant par la cellule
AP1

je vous remercie par avance...

stephane









Avatar
JB
Bonjour,

ligne = 1
For Each s In ActiveWorkbook.Sheets
If s.Name Like "P_*" Then
a = s.[L4:L13]
For i = 1 To 10
Sheets("param").Cells(ligne, 42).Resize(1, 2) = Split(a(i, 1),
";")
ligne = ligne + 1
Next i
End If
Next s

JB

On 4 mar, 16:05, "stephprod" wrote:
Bonjour,

j'ai un fichier excel qui contient des feuilles nommées "P_ etc" et en
cellule  L4 jusqu'à L13 j'ai un chiffre compsé de deux caractère a u max,
d'un point virgule et d'une chaine de texte... exemple

1;TATA
50;TOTO
99;TITI
j aimerais qu'une macro me sépare les deux dans chaque feuille et dans
chaque cellule de L4 à L13
et me les stockes sous forment de tableau dans la feuille PARAM de mon
classeur actif commencant par la cellule
AP1

je vous remercie par avance...

stephane


Avatar
JB
Une colonne par feuille:

col = 42
For Each s In ActiveWorkbook.Sheets
If s.Name Like "P_*" Then
For i = 1 To 10
Sheets("param").Cells(i, col).Resize(1, 2) = Split(s.Cells(i +
3, 12), ";")
Next i
col = col + 2
End If
Next s

JB


On 4 mar, 17:16, JB wrote:
Bonjour,

 ligne = 1
 For Each s In ActiveWorkbook.Sheets
   If s.Name Like "P_*" Then
     a = s.[L4:L13]
     For i = 1 To 10
       Sheets("param").Cells(ligne, 42).Resize(1, 2) = Split(a(i , 1),
";")
       ligne = ligne + 1
     Next i
   End If
 Next s

JB

On 4 mar, 16:05, "stephprod" wrote:



Bonjour,

j'ai un fichier excel qui contient des feuilles nommées "P_ etc" et en
cellule  L4 jusqu'à L13 j'ai un chiffre compsé de deux caractère au max,
d'un point virgule et d'une chaine de texte... exemple

1;TATA
50;TOTO
99;TITI
j aimerais qu'une macro me sépare les deux dans chaque feuille et dans
chaque cellule de L4 à L13
et me les stockes sous forment de tableau dans la feuille PARAM de mon
classeur actif commencant par la cellule
AP1

je vous remercie par avance...

stephane- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Avatar
Daniel.C
Quel décalage ? La macro stocke les infos les unes sous les autres.
Daniel
"stephprod" a écrit dans le message de news:
47cd729d$0$841$
ca marche mais pour qu'un seul onglet "p_ "
il decale pas pour les autres feilles
merci quand meme



"Daniel.C" a écrit dans le message de news:
%
Bonjour.
Essaie (non testée) :

Sub test()
Dim sh As Worksheet, ligne As Long, c As Range

With Sheets("PARAM")
For Each sh In Sheets
If Left(sh.Name, 2) = "P_" Then
For Each c In sh.Range("L4:L13")
.[AP1].Offset(ligne) = Split(c, ";")(0)
.[AP1].Offset(ligne, 1) = Split(c, ";")(1)
ligne = ligne + 1
Next c
End If
Next
End With
End Sub

Daniel
"stephprod" a écrit dans le message de news:
47cd653d$0$902$
Bonjour,

j'ai un fichier excel qui contient des feuilles nommées "P_ etc" et en
cellule L4 jusqu'à L13 j'ai un chiffre compsé de deux caractère au max,
d'un point virgule et d'une chaine de texte... exemple

1;TATA
50;TOTO
99;TITI
j aimerais qu'une macro me sépare les deux dans chaque feuille et dans
chaque cellule de L4 à L13
et me les stockes sous forment de tableau dans la feuille PARAM de mon
classeur actif commencant par la cellule
AP1

je vous remercie par avance...

stephane