Bonjour, je retrouve pas l'auteur de ce qui suit...
en tout cas c'est super!!
j'ai un seul prob que j'arrive pas à résoudre par un remise en format
si dans le tableau se trouve un date, ex: 31/01/2000 tout se passe
normalement dans la retranscription,
dans le cas du: 10/01/2000 il me rapporte comme date 1/10/2000.
Sub ReportLigneActiveEt1()
Dim Mat1() As String, MatN() As String, i As Integer
Dim NbColLigne1 As Integer, NbColLigneN As Integer
' Nombre de colonnes utilisées en ligne 1
NbColLigne1 = Range("IV1").End(xlToLeft).Column
' Nombre de colonnes utilisées pour la ligne active
With ActiveCell
NbColLigneN = .Offset(0, 250 - .Column).End(xlToLeft).Column
End With
ReDim Mat1(NbColLigne1 - 1)
' Stockage des données de la ligne 1
For i = 0 To NbColLigne1 - 1
Mat1(i) = Range("A1").Offset(0, i)
Next i
ReDim MatN(NbColLigneN - 1)
' Stockage des données de la ligne active
For i = 0 To NbColLigneN - 1
With ActiveCell.Offset(0, -ActiveCell.Column + 1)
MatN(i) = .Offset(0, i)
End With
Next i
' Création d'un nouveau classeur
Workbooks.Add
' Report des données
With Range("A1")
For i = 0 To NbColLigne1 - 1
.Offset(i) = Mat1(i)
Next i
End With
With Range("B1")
For i = 0 To NbColLigneN - 1
.Offset(i) = MatN(i)
Next i
End With
Et si tu nous rappelais la question originelle ....
AV
Denis Michon
Bonjour Hervé
Si tu as une version excel 2000 ou plus récente,
est-ce que ceci fonctionne ?
Remplace ta section de code par celle-ci. tu peux définir un format date différent si besoin est.
La méthode resize ne fonctionne pas si ta version est inférieur à excel 2000 cependant des aménagements sont toujours possible !
Workbooks.Add With ActiveWorkbook With .Range("A1").Resize(UBound(Mat1) + 1) .NumberFormat = "d/mm/yy" .Value = Application.transpose(Mat1) End With With .Range("b1").Resize(UBound(MatN) + 1) .NumberFormat = "d/mm/yy" .Value = Application.transpose(MatN) End With End With
Salutations!
"herve" a écrit dans le message de news:br4t4s$dpa$ Bonjour, je retrouve pas l'auteur de ce qui suit... en tout cas c'est super!! j'ai un seul prob que j'arrive pas à résoudre par un remise en format si dans le tableau se trouve un date, ex: 31/01/2000 tout se passe normalement dans la retranscription, dans le cas du: 10/01/2000 il me rapporte comme date 1/10/2000.
Sub ReportLigneActiveEt1() Dim Mat1() As String, MatN() As String, i As Integer Dim NbColLigne1 As Integer, NbColLigneN As Integer ' Nombre de colonnes utilisées en ligne 1 NbColLigne1 = Range("IV1").End(xlToLeft).Column ' Nombre de colonnes utilisées pour la ligne active With ActiveCell NbColLigneN = .Offset(0, 250 - .Column).End(xlToLeft).Column End With ReDim Mat1(NbColLigne1 - 1) ' Stockage des données de la ligne 1 For i = 0 To NbColLigne1 - 1 Mat1(i) = Range("A1").Offset(0, i) Next i ReDim MatN(NbColLigneN - 1) ' Stockage des données de la ligne active For i = 0 To NbColLigneN - 1 With ActiveCell.Offset(0, -ActiveCell.Column + 1) MatN(i) = .Offset(0, i) End With Next i ' Création d'un nouveau classeur Workbooks.Add ' Report des données With Range("A1") For i = 0 To NbColLigne1 - 1 .Offset(i) = Mat1(i) Next i End With With Range("B1") For i = 0 To NbColLigneN - 1 .Offset(i) = MatN(i) Next i End With
End Sub
Bonjour Hervé
Si tu as une version excel 2000 ou plus récente,
est-ce que ceci fonctionne ?
Remplace ta section de code par celle-ci.
tu peux définir un format date différent si besoin est.
La méthode resize ne fonctionne pas si ta version est inférieur à excel 2000
cependant des aménagements sont toujours possible !
Workbooks.Add
With ActiveWorkbook
With .Range("A1").Resize(UBound(Mat1) + 1)
.NumberFormat = "d/mm/yy"
.Value = Application.transpose(Mat1)
End With
With .Range("b1").Resize(UBound(MatN) + 1)
.NumberFormat = "d/mm/yy"
.Value = Application.transpose(MatN)
End With
End With
Salutations!
"herve" <herve.canto@wanadoo.fr> a écrit dans le message de news:br4t4s$dpa$1@news-reader3.wanadoo.fr...
Bonjour, je retrouve pas l'auteur de ce qui suit...
en tout cas c'est super!!
j'ai un seul prob que j'arrive pas à résoudre par un remise en format
si dans le tableau se trouve un date, ex: 31/01/2000 tout se passe
normalement dans la retranscription,
dans le cas du: 10/01/2000 il me rapporte comme date 1/10/2000.
Sub ReportLigneActiveEt1()
Dim Mat1() As String, MatN() As String, i As Integer
Dim NbColLigne1 As Integer, NbColLigneN As Integer
' Nombre de colonnes utilisées en ligne 1
NbColLigne1 = Range("IV1").End(xlToLeft).Column
' Nombre de colonnes utilisées pour la ligne active
With ActiveCell
NbColLigneN = .Offset(0, 250 - .Column).End(xlToLeft).Column
End With
ReDim Mat1(NbColLigne1 - 1)
' Stockage des données de la ligne 1
For i = 0 To NbColLigne1 - 1
Mat1(i) = Range("A1").Offset(0, i)
Next i
ReDim MatN(NbColLigneN - 1)
' Stockage des données de la ligne active
For i = 0 To NbColLigneN - 1
With ActiveCell.Offset(0, -ActiveCell.Column + 1)
MatN(i) = .Offset(0, i)
End With
Next i
' Création d'un nouveau classeur
Workbooks.Add
' Report des données
With Range("A1")
For i = 0 To NbColLigne1 - 1
.Offset(i) = Mat1(i)
Next i
End With
With Range("B1")
For i = 0 To NbColLigneN - 1
.Offset(i) = MatN(i)
Next i
End With
Remplace ta section de code par celle-ci. tu peux définir un format date différent si besoin est.
La méthode resize ne fonctionne pas si ta version est inférieur à excel 2000 cependant des aménagements sont toujours possible !
Workbooks.Add With ActiveWorkbook With .Range("A1").Resize(UBound(Mat1) + 1) .NumberFormat = "d/mm/yy" .Value = Application.transpose(Mat1) End With With .Range("b1").Resize(UBound(MatN) + 1) .NumberFormat = "d/mm/yy" .Value = Application.transpose(MatN) End With End With
Salutations!
"herve" a écrit dans le message de news:br4t4s$dpa$ Bonjour, je retrouve pas l'auteur de ce qui suit... en tout cas c'est super!! j'ai un seul prob que j'arrive pas à résoudre par un remise en format si dans le tableau se trouve un date, ex: 31/01/2000 tout se passe normalement dans la retranscription, dans le cas du: 10/01/2000 il me rapporte comme date 1/10/2000.
Sub ReportLigneActiveEt1() Dim Mat1() As String, MatN() As String, i As Integer Dim NbColLigne1 As Integer, NbColLigneN As Integer ' Nombre de colonnes utilisées en ligne 1 NbColLigne1 = Range("IV1").End(xlToLeft).Column ' Nombre de colonnes utilisées pour la ligne active With ActiveCell NbColLigneN = .Offset(0, 250 - .Column).End(xlToLeft).Column End With ReDim Mat1(NbColLigne1 - 1) ' Stockage des données de la ligne 1 For i = 0 To NbColLigne1 - 1 Mat1(i) = Range("A1").Offset(0, i) Next i ReDim MatN(NbColLigneN - 1) ' Stockage des données de la ligne active For i = 0 To NbColLigneN - 1 With ActiveCell.Offset(0, -ActiveCell.Column + 1) MatN(i) = .Offset(0, i) End With Next i ' Création d'un nouveau classeur Workbooks.Add ' Report des données With Range("A1") For i = 0 To NbColLigne1 - 1 .Offset(i) = Mat1(i) Next i End With With Range("B1") For i = 0 To NbColLigneN - 1 .Offset(i) = MatN(i) Next i End With
End Sub
AV
La méthode resize ne fonctionne pas si ta version est inférieur à excel 2000
Gluppss ! Mais comment se fait-ce ? Aurais-je un micro-climat chez moi ? (Testé sur XL SR2)
AV
La méthode resize ne fonctionne pas si ta version est inférieur à excel 2000
Gluppss !
Mais comment se fait-ce ?
Aurais-je un micro-climat chez moi ?
(Testé sur XL SR2)
La méthode resize ne fonctionne pas si ta version est inférieur à excel 2000
Gluppss ! Mais comment se fait-ce ? Aurais-je un micro-climat chez moi ? (Testé sur XL SR2)
AV
Denis Michon
Bonjour AV,
Je pensais avoir lu ici sur ce forum que cette méthode ne fonctionnait pas sur excel 97. Comme je n'ai pas cette version d'installée, je n'ai jamais personnellement testé ! Tant mieux pour les usagers d'excel si tu confirmes le contraire ! Cette méthode est très pratique...
;-)
Salutations!
"AV" a écrit dans le message de news:
La méthode resize ne fonctionne pas si ta version est inférieur à excel 2000
Gluppss ! Mais comment se fait-ce ? Aurais-je un micro-climat chez moi ? (Testé sur XL SR2)
AV
Bonjour AV,
Je pensais avoir lu ici sur ce forum que cette méthode ne fonctionnait pas sur excel 97. Comme je n'ai pas cette version
d'installée, je n'ai jamais personnellement testé ! Tant mieux pour les usagers d'excel si tu confirmes le contraire ! Cette
méthode est très pratique...
;-)
Salutations!
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de news:eHtGFznvDHA.2880@tk2msftngp13.phx.gbl...
La méthode resize ne fonctionne pas si ta version est inférieur à excel 2000
Gluppss !
Mais comment se fait-ce ?
Aurais-je un micro-climat chez moi ?
(Testé sur XL SR2)
Je pensais avoir lu ici sur ce forum que cette méthode ne fonctionnait pas sur excel 97. Comme je n'ai pas cette version d'installée, je n'ai jamais personnellement testé ! Tant mieux pour les usagers d'excel si tu confirmes le contraire ! Cette méthode est très pratique...
;-)
Salutations!
"AV" a écrit dans le message de news:
La méthode resize ne fonctionne pas si ta version est inférieur à excel 2000
Gluppss ! Mais comment se fait-ce ? Aurais-je un micro-climat chez moi ? (Testé sur XL SR2)
AV
herve
désolé cette macro copie la ligne de la cellule active, ainsi que la ligne A1, avant de les coller dans un nouveau classeur verticalement, pas de prob pour les noms, adresses etc, seul les dates me posent prob. a+ herve
"AV" a écrit dans le message de news:
Et si tu nous rappelais la question originelle ....
AV
désolé
cette macro copie la ligne de la cellule active, ainsi que la ligne A1,
avant de les coller dans un nouveau classeur verticalement, pas de prob pour
les noms, adresses etc, seul les dates me posent prob.
a+
herve
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de
news:uui8KNnvDHA.2472@TK2MSFTNGP09.phx.gbl...
Et si tu nous rappelais la question originelle ....
désolé cette macro copie la ligne de la cellule active, ainsi que la ligne A1, avant de les coller dans un nouveau classeur verticalement, pas de prob pour les noms, adresses etc, seul les dates me posent prob. a+ herve
"AV" a écrit dans le message de news:
Et si tu nous rappelais la question originelle ....
AV
AV
M'est avis qu'il n'est pas utile de stocker les valeurs dans 2 tableaux
Alternative et pas de problème de dates : Ta base de données (A1:YYxx) est dans la feuille active et comprend en ligne 1 les noms de champs (étiquettes de colonnes)
Sub zzzz() With [A1].CurrentRegion x = .Rows.Count y = .Columns.Count If Intersect(ActiveCell, Range(.Address)) Is Nothing Then Exit Sub End With Union(Range(Cells(1, 1), Cells(1, y)), Range(Cells(ActiveCell.Row, 1), _ Cells(ActiveCell.Row, y))).Copy Workbooks.Add [A1].PasteSpecial Paste:=xlAll, Transpose:=True Application.CutCopyMode = False: [A1].Select End Sub
AV
M'est avis qu'il n'est pas utile de stocker les valeurs dans 2 tableaux
Alternative et pas de problème de dates :
Ta base de données (A1:YYxx) est dans la feuille active et comprend en ligne 1
les noms de champs (étiquettes de colonnes)
Sub zzzz()
With [A1].CurrentRegion
x = .Rows.Count
y = .Columns.Count
If Intersect(ActiveCell, Range(.Address)) Is Nothing Then Exit Sub
End With
Union(Range(Cells(1, 1), Cells(1, y)), Range(Cells(ActiveCell.Row, 1), _
Cells(ActiveCell.Row, y))).Copy
Workbooks.Add
[A1].PasteSpecial Paste:=xlAll, Transpose:=True
Application.CutCopyMode = False: [A1].Select
End Sub
M'est avis qu'il n'est pas utile de stocker les valeurs dans 2 tableaux
Alternative et pas de problème de dates : Ta base de données (A1:YYxx) est dans la feuille active et comprend en ligne 1 les noms de champs (étiquettes de colonnes)
Sub zzzz() With [A1].CurrentRegion x = .Rows.Count y = .Columns.Count If Intersect(ActiveCell, Range(.Address)) Is Nothing Then Exit Sub End With Union(Range(Cells(1, 1), Cells(1, y)), Range(Cells(ActiveCell.Row, 1), _ Cells(ActiveCell.Row, y))).Copy Workbooks.Add [A1].PasteSpecial Paste:=xlAll, Transpose:=True Application.CutCopyMode = False: [A1].Select End Sub
AV
herve
merci alain c'est exactement ce que je souhaitais, et en plus c'est beaucoup plus rapide de cette manière, merci a+ hervé
"AV" a écrit dans le message de news:
M'est avis qu'il n'est pas utile de stocker les valeurs dans 2 tableaux
Alternative et pas de problème de dates : Ta base de données (A1:YYxx) est dans la feuille active et comprend en ligne 1
les noms de champs (étiquettes de colonnes)
Sub zzzz() With [A1].CurrentRegion x = .Rows.Count y = .Columns.Count If Intersect(ActiveCell, Range(.Address)) Is Nothing Then Exit Sub End With Union(Range(Cells(1, 1), Cells(1, y)), Range(Cells(ActiveCell.Row, 1), _ Cells(ActiveCell.Row, y))).Copy Workbooks.Add [A1].PasteSpecial Paste:=xlAll, Transpose:=True Application.CutCopyMode = False: [A1].Select End Sub
AV
merci alain
c'est exactement ce que je souhaitais, et en plus c'est beaucoup plus rapide
de cette manière, merci
a+
hervé
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de
news:uuhWgo0vDHA.3436@tk2msftngp13.phx.gbl...
M'est avis qu'il n'est pas utile de stocker les valeurs dans 2 tableaux
Alternative et pas de problème de dates :
Ta base de données (A1:YYxx) est dans la feuille active et comprend en
ligne 1
les noms de champs (étiquettes de colonnes)
Sub zzzz()
With [A1].CurrentRegion
x = .Rows.Count
y = .Columns.Count
If Intersect(ActiveCell, Range(.Address)) Is Nothing Then Exit Sub
End With
Union(Range(Cells(1, 1), Cells(1, y)), Range(Cells(ActiveCell.Row, 1), _
Cells(ActiveCell.Row, y))).Copy
Workbooks.Add
[A1].PasteSpecial Paste:=xlAll, Transpose:=True
Application.CutCopyMode = False: [A1].Select
End Sub
merci alain c'est exactement ce que je souhaitais, et en plus c'est beaucoup plus rapide de cette manière, merci a+ hervé
"AV" a écrit dans le message de news:
M'est avis qu'il n'est pas utile de stocker les valeurs dans 2 tableaux
Alternative et pas de problème de dates : Ta base de données (A1:YYxx) est dans la feuille active et comprend en ligne 1
les noms de champs (étiquettes de colonnes)
Sub zzzz() With [A1].CurrentRegion x = .Rows.Count y = .Columns.Count If Intersect(ActiveCell, Range(.Address)) Is Nothing Then Exit Sub End With Union(Range(Cells(1, 1), Cells(1, y)), Range(Cells(ActiveCell.Row, 1), _ Cells(ActiveCell.Row, y))).Copy Workbooks.Add [A1].PasteSpecial Paste:=xlAll, Transpose:=True Application.CutCopyMode = False: [A1].Select End Sub
AV
AV
c'est exactement ce que je souhaitais, et en plus c'est beaucoup plus rapide de cette manière
Alors c'est parfait ! AV
c'est exactement ce que je souhaitais, et en plus c'est beaucoup plus rapide
de cette manière