Sur le forum, FS m'avait =E9t=E9 =E0 r=E9soudre un pb de macro.=20
Aujourd'hui, mes besoins =E9voluent, mais je ne sais pas=20
faire =E9voluer la macro...
Voici mon pb avec la macro plus bas :
J'ai un tableau (feuil1) avec en A des donn=E9es s=E9par=E9es=20
par un "-", avec des libell=E9s en B, et des mois (janv en=20
C, fev en D, ...)
La macro copie les donn=E9es de A sur le feuil2, puis les=20
s=E9parent (Split) en colonne B. Exemple 652-626-627 donne=20
en B1 =3D 625, en B2 =3D 626 et en B3627. C'est l=E0 ou ca se=20
complique :
J'aimerai r=E9cuperer en plus les donn=E9es des colonnes B et=20
celle du mois d=E9sir=E9 dont la valeur est saisie sur la=20
Feuil1, celA1, puis que la macro effectuent la m=EAme=20
op=E9ration mais avec plus de donn=E9es. J'explique :
Feuil1
A1 =3D 626-627
B1 =3D Voitures
C1 =3D 25
R=E9sultat attendu sur Feuil2:
A1 =3D 626
B1 =3D Voitures
C1 =3D 25
D1 =3D Janvier
Puis
A2 =3D 627
B2 =3D Voitures
C2 =3D 25
D2 =3D Janvier
L'id=E9e est de pouvoir obtenir un format pour int=E9gration=20
dans Access.
Les macros :
Sub Recopie()
Dim Tableau
Dim FeuilleCible As Worksheet
Dim i As Integer
Dim Plage As Range
For i =3D 0 To UBound(Tableau)
With Sheets(Tableau(i))
Set Plage =3D .Range("a2:a" & _
.Range("a65535").End(xlUp).Row)
End With
Plage.Copy Destination:=3DFeuilleCible.Range
("a65535") _
.End(xlUp)(IIf(i =3D 0, 1, 2))
Next i
Application.ScreenUpdating =3D True
End Sub
Sub SuppLigne()
Worksheets("Control").Activate
Set Plg1 =3D Range("A1:A" & Range("A65536").End(xlUp).Row)
Plg1.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Sub FormaLeCompte()
Dim Cel As Range, nLColB&, X As Variant, n As Integer
For Each Cel In Range("A1:a" & Range("a65536").End
(xlUp).Row)
=20
X =3D SplitFor97(Cel, "-")
=20
n =3D UBound(X) - LBound(X) + 1
If n <> 0 Then
Range("b" & nLColB & ":b" & nLColB - 1 + n) =3D _
Application.Transpose(X)
nLColB =3D nLColB + n
Else
Range("b" & nLColB) =3D ""
nLColB =3D nLColB + 1
End If
Next Cel
Application.ScreenUpdating =3D True
End Sub
Mon pb tient de l'irréalisable, ou n'ais je pas été clair dans mes explications ?
Merci encore pour votre aide précieuse.
Cordialement,
François
-----Message d'origine----- Bonjour à tous,
Sur le forum, FS m'avait été à résoudre un pb de macro. Aujourd'hui, mes besoins évoluent, mais je ne sais pas faire évoluer la macro...
Voici mon pb avec la macro plus bas : J'ai un tableau (feuil1) avec en A des données séparées par un "-", avec des libellés en B, et des mois (janv en C, fev en D, ...) La macro copie les données de A sur le feuil2, puis les séparent (Split) en colonne B. Exemple 652-626-627 donne en B1 = 625, en B2 = 626 et en B3627. C'est là ou ca se complique : J'aimerai récuperer en plus les données des colonnes B et celle du mois désiré dont la valeur est saisie sur la Feuil1, celA1, puis que la macro effectuent la même opération mais avec plus de données. J'explique : Feuil1 A1 = 626-627 B1 = Voitures C1 = 25 Résultat attendu sur Feuil2: A1 = 626 B1 = Voitures C1 = 25 D1 = Janvier Puis A2 = 627 B2 = Voitures C2 = 25 D2 = Janvier L'idée est de pouvoir obtenir un format pour intégration dans Access. Les macros : Sub Recopie() Dim Tableau Dim FeuilleCible As Worksheet Dim i As Integer Dim Plage As Range
For i = 0 To UBound(Tableau) With Sheets(Tableau(i)) Set Plage = .Range("a2:a" & _ .Range("a65535").End(xlUp).Row) End With Plage.Copy Destination:þuilleCible.Range ("a65535") _ .End(xlUp)(IIf(i = 0, 1, 2)) Next i Application.ScreenUpdating = True End Sub
Sub SuppLigne() Worksheets("Control").Activate Set Plg1 = Range("A1:A" & Range("A65536").End(xlUp).Row) Plg1.SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub
Sub FormaLeCompte() Dim Cel As Range, nLColB&, X As Variant, n As Integer
For Each Cel In Range("A1:a" & Range("a65536").End (xlUp).Row)
X = SplitFor97(Cel, "-")
n = UBound(X) - LBound(X) + 1 If n <> 0 Then Range("b" & nLColB & ":b" & nLColB - 1 + n) = _ Application.Transpose(X) nLColB = nLColB + n Else Range("b" & nLColB) = "" nLColB = nLColB + 1 End If Next Cel Application.ScreenUpdating = True End Sub
Je vous remercie par avance pour votre aide
Cordialement,
François .
Bonjour à tous,
Mon pb tient de l'irréalisable, ou n'ais je pas été clair
dans mes explications ?
Merci encore pour votre aide précieuse.
Cordialement,
François
-----Message d'origine-----
Bonjour à tous,
Sur le forum, FS m'avait été à résoudre un pb de macro.
Aujourd'hui, mes besoins évoluent, mais je ne sais pas
faire évoluer la macro...
Voici mon pb avec la macro plus bas :
J'ai un tableau (feuil1) avec en A des données séparées
par un "-", avec des libellés en B, et des mois (janv en
C, fev en D, ...)
La macro copie les données de A sur le feuil2, puis les
séparent (Split) en colonne B. Exemple 652-626-627 donne
en B1 = 625, en B2 = 626 et en B3627. C'est là ou ca se
complique :
J'aimerai récuperer en plus les données des colonnes B et
celle du mois désiré dont la valeur est saisie sur la
Feuil1, celA1, puis que la macro effectuent la même
opération mais avec plus de données. J'explique :
Feuil1
A1 = 626-627
B1 = Voitures
C1 = 25
Résultat attendu sur Feuil2:
A1 = 626
B1 = Voitures
C1 = 25
D1 = Janvier
Puis
A2 = 627
B2 = Voitures
C2 = 25
D2 = Janvier
L'idée est de pouvoir obtenir un format pour intégration
dans Access.
Les macros :
Sub Recopie()
Dim Tableau
Dim FeuilleCible As Worksheet
Dim i As Integer
Dim Plage As Range
For i = 0 To UBound(Tableau)
With Sheets(Tableau(i))
Set Plage = .Range("a2:a" & _
.Range("a65535").End(xlUp).Row)
End With
Plage.Copy Destination:=FeuilleCible.Range
("a65535") _
.End(xlUp)(IIf(i = 0, 1, 2))
Next i
Application.ScreenUpdating = True
End Sub
Sub SuppLigne()
Worksheets("Control").Activate
Set Plg1 = Range("A1:A" & Range("A65536").End(xlUp).Row)
Plg1.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Sub FormaLeCompte()
Dim Cel As Range, nLColB&, X As Variant, n As Integer
For Each Cel In Range("A1:a" & Range("a65536").End
(xlUp).Row)
X = SplitFor97(Cel, "-")
n = UBound(X) - LBound(X) + 1
If n <> 0 Then
Range("b" & nLColB & ":b" & nLColB - 1 + n) = _
Application.Transpose(X)
nLColB = nLColB + n
Else
Range("b" & nLColB) = ""
nLColB = nLColB + 1
End If
Next Cel
Application.ScreenUpdating = True
End Sub
Mon pb tient de l'irréalisable, ou n'ais je pas été clair dans mes explications ?
Merci encore pour votre aide précieuse.
Cordialement,
François
-----Message d'origine----- Bonjour à tous,
Sur le forum, FS m'avait été à résoudre un pb de macro. Aujourd'hui, mes besoins évoluent, mais je ne sais pas faire évoluer la macro...
Voici mon pb avec la macro plus bas : J'ai un tableau (feuil1) avec en A des données séparées par un "-", avec des libellés en B, et des mois (janv en C, fev en D, ...) La macro copie les données de A sur le feuil2, puis les séparent (Split) en colonne B. Exemple 652-626-627 donne en B1 = 625, en B2 = 626 et en B3627. C'est là ou ca se complique : J'aimerai récuperer en plus les données des colonnes B et celle du mois désiré dont la valeur est saisie sur la Feuil1, celA1, puis que la macro effectuent la même opération mais avec plus de données. J'explique : Feuil1 A1 = 626-627 B1 = Voitures C1 = 25 Résultat attendu sur Feuil2: A1 = 626 B1 = Voitures C1 = 25 D1 = Janvier Puis A2 = 627 B2 = Voitures C2 = 25 D2 = Janvier L'idée est de pouvoir obtenir un format pour intégration dans Access. Les macros : Sub Recopie() Dim Tableau Dim FeuilleCible As Worksheet Dim i As Integer Dim Plage As Range
For i = 0 To UBound(Tableau) With Sheets(Tableau(i)) Set Plage = .Range("a2:a" & _ .Range("a65535").End(xlUp).Row) End With Plage.Copy Destination:þuilleCible.Range ("a65535") _ .End(xlUp)(IIf(i = 0, 1, 2)) Next i Application.ScreenUpdating = True End Sub
Sub SuppLigne() Worksheets("Control").Activate Set Plg1 = Range("A1:A" & Range("A65536").End(xlUp).Row) Plg1.SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub
Sub FormaLeCompte() Dim Cel As Range, nLColB&, X As Variant, n As Integer
For Each Cel In Range("A1:a" & Range("a65536").End (xlUp).Row)
X = SplitFor97(Cel, "-")
n = UBound(X) - LBound(X) + 1 If n <> 0 Then Range("b" & nLColB & ":b" & nLColB - 1 + n) = _ Application.Transpose(X) nLColB = nLColB + n Else Range("b" & nLColB) = "" nLColB = nLColB + 1 End If Next Cel Application.ScreenUpdating = True End Sub
Je vous remercie par avance pour votre aide
Cordialement,
François .
Frédéric Sigonneau
Bonsoir,
J'ai un tableau (feuil1) avec en A des données séparées par un "-", avec des libellés en B, et des mois (janv en C, fev en D, ...)
Et quel est la méthode pour savoir quel est le mois à utiliser ? ie dans quelle colonne, de C pour janvier à N pour décembre, faut-il aller chercher le mois à recopier en colonne D sur la feuille 2 ? Avec ce renseignement il devrait être possible de modifier la procédure FormaLeCompte pour obtenir ce que tu souhaites.
FS --- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://frederic.sigonneau.free.fr Si votre question sur Excel est urgente, évitez ma bal !
Bonjour à tous,
Sur le forum, FS m'avait été à résoudre un pb de macro. Aujourd'hui, mes besoins évoluent, mais je ne sais pas faire évoluer la macro...
Voici mon pb avec la macro plus bas : J'ai un tableau (feuil1) avec en A des données séparées par un "-", avec des libellés en B, et des mois (janv en C, fev en D, ...) La macro copie les données de A sur le feuil2, puis les séparent (Split) en colonne B. Exemple 652-626-627 donne en B1 = 625, en B2 = 626 et en B3627. C'est là ou ca se complique : J'aimerai récuperer en plus les données des colonnes B et celle du mois désiré dont la valeur est saisie sur la Feuil1, celA1, puis que la macro effectuent la même opération mais avec plus de données. J'explique : Feuil1 A1 = 626-627 B1 = Voitures C1 = 25 Résultat attendu sur Feuil2: A1 = 626 B1 = Voitures C1 = 25 D1 = Janvier Puis A2 = 627 B2 = Voitures C2 = 25 D2 = Janvier L'idée est de pouvoir obtenir un format pour intégration dans Access. Les macros : Sub Recopie() Dim Tableau Dim FeuilleCible As Worksheet Dim i As Integer Dim Plage As Range
For i = 0 To UBound(Tableau) With Sheets(Tableau(i)) Set Plage = .Range("a2:a" & _ .Range("a65535").End(xlUp).Row) End With Plage.Copy Destination:þuilleCible.Range ("a65535") _ .End(xlUp)(IIf(i = 0, 1, 2)) Next i Application.ScreenUpdating = True End Sub
Sub SuppLigne() Worksheets("Control").Activate Set Plg1 = Range("A1:A" & Range("A65536").End(xlUp).Row) Plg1.SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub
Sub FormaLeCompte() Dim Cel As Range, nLColB&, X As Variant, n As Integer
For Each Cel In Range("A1:a" & Range("a65536").End (xlUp).Row)
X = SplitFor97(Cel, "-")
n = UBound(X) - LBound(X) + 1 If n <> 0 Then Range("b" & nLColB & ":b" & nLColB - 1 + n) = _ Application.Transpose(X) nLColB = nLColB + n Else Range("b" & nLColB) = "" nLColB = nLColB + 1 End If Next Cel Application.ScreenUpdating = True End Sub
Je vous remercie par avance pour votre aide
Cordialement,
François
Bonsoir,
J'ai un tableau (feuil1) avec en A des données séparées
par un "-", avec des libellés en B, et des mois (janv en
C, fev en D, ...)
Et quel est la méthode pour savoir quel est le mois à utiliser ? ie dans quelle
colonne, de C pour janvier à N pour décembre, faut-il aller chercher le mois à
recopier en colonne D sur la feuille 2 ?
Avec ce renseignement il devrait être possible de modifier la procédure
FormaLeCompte pour obtenir ce que tu souhaites.
FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://frederic.sigonneau.free.fr
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour à tous,
Sur le forum, FS m'avait été à résoudre un pb de macro.
Aujourd'hui, mes besoins évoluent, mais je ne sais pas
faire évoluer la macro...
Voici mon pb avec la macro plus bas :
J'ai un tableau (feuil1) avec en A des données séparées
par un "-", avec des libellés en B, et des mois (janv en
C, fev en D, ...)
La macro copie les données de A sur le feuil2, puis les
séparent (Split) en colonne B. Exemple 652-626-627 donne
en B1 = 625, en B2 = 626 et en B3627. C'est là ou ca se
complique :
J'aimerai récuperer en plus les données des colonnes B et
celle du mois désiré dont la valeur est saisie sur la
Feuil1, celA1, puis que la macro effectuent la même
opération mais avec plus de données. J'explique :
Feuil1
A1 = 626-627
B1 = Voitures
C1 = 25
Résultat attendu sur Feuil2:
A1 = 626
B1 = Voitures
C1 = 25
D1 = Janvier
Puis
A2 = 627
B2 = Voitures
C2 = 25
D2 = Janvier
L'idée est de pouvoir obtenir un format pour intégration
dans Access.
Les macros :
Sub Recopie()
Dim Tableau
Dim FeuilleCible As Worksheet
Dim i As Integer
Dim Plage As Range
For i = 0 To UBound(Tableau)
With Sheets(Tableau(i))
Set Plage = .Range("a2:a" & _
.Range("a65535").End(xlUp).Row)
End With
Plage.Copy Destination:þuilleCible.Range
("a65535") _
.End(xlUp)(IIf(i = 0, 1, 2))
Next i
Application.ScreenUpdating = True
End Sub
Sub SuppLigne()
Worksheets("Control").Activate
Set Plg1 = Range("A1:A" & Range("A65536").End(xlUp).Row)
Plg1.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Sub FormaLeCompte()
Dim Cel As Range, nLColB&, X As Variant, n As Integer
For Each Cel In Range("A1:a" & Range("a65536").End
(xlUp).Row)
X = SplitFor97(Cel, "-")
n = UBound(X) - LBound(X) + 1
If n <> 0 Then
Range("b" & nLColB & ":b" & nLColB - 1 + n) = _
Application.Transpose(X)
nLColB = nLColB + n
Else
Range("b" & nLColB) = ""
nLColB = nLColB + 1
End If
Next Cel
Application.ScreenUpdating = True
End Sub
J'ai un tableau (feuil1) avec en A des données séparées par un "-", avec des libellés en B, et des mois (janv en C, fev en D, ...)
Et quel est la méthode pour savoir quel est le mois à utiliser ? ie dans quelle colonne, de C pour janvier à N pour décembre, faut-il aller chercher le mois à recopier en colonne D sur la feuille 2 ? Avec ce renseignement il devrait être possible de modifier la procédure FormaLeCompte pour obtenir ce que tu souhaites.
FS --- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://frederic.sigonneau.free.fr Si votre question sur Excel est urgente, évitez ma bal !
Bonjour à tous,
Sur le forum, FS m'avait été à résoudre un pb de macro. Aujourd'hui, mes besoins évoluent, mais je ne sais pas faire évoluer la macro...
Voici mon pb avec la macro plus bas : J'ai un tableau (feuil1) avec en A des données séparées par un "-", avec des libellés en B, et des mois (janv en C, fev en D, ...) La macro copie les données de A sur le feuil2, puis les séparent (Split) en colonne B. Exemple 652-626-627 donne en B1 = 625, en B2 = 626 et en B3627. C'est là ou ca se complique : J'aimerai récuperer en plus les données des colonnes B et celle du mois désiré dont la valeur est saisie sur la Feuil1, celA1, puis que la macro effectuent la même opération mais avec plus de données. J'explique : Feuil1 A1 = 626-627 B1 = Voitures C1 = 25 Résultat attendu sur Feuil2: A1 = 626 B1 = Voitures C1 = 25 D1 = Janvier Puis A2 = 627 B2 = Voitures C2 = 25 D2 = Janvier L'idée est de pouvoir obtenir un format pour intégration dans Access. Les macros : Sub Recopie() Dim Tableau Dim FeuilleCible As Worksheet Dim i As Integer Dim Plage As Range
For i = 0 To UBound(Tableau) With Sheets(Tableau(i)) Set Plage = .Range("a2:a" & _ .Range("a65535").End(xlUp).Row) End With Plage.Copy Destination:þuilleCible.Range ("a65535") _ .End(xlUp)(IIf(i = 0, 1, 2)) Next i Application.ScreenUpdating = True End Sub
Sub SuppLigne() Worksheets("Control").Activate Set Plg1 = Range("A1:A" & Range("A65536").End(xlUp).Row) Plg1.SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub
Sub FormaLeCompte() Dim Cel As Range, nLColB&, X As Variant, n As Integer
For Each Cel In Range("A1:a" & Range("a65536").End (xlUp).Row)
X = SplitFor97(Cel, "-")
n = UBound(X) - LBound(X) + 1 If n <> 0 Then Range("b" & nLColB & ":b" & nLColB - 1 + n) = _ Application.Transpose(X) nLColB = nLColB + n Else Range("b" & nLColB) = "" nLColB = nLColB + 1 End If Next Cel Application.ScreenUpdating = True End Sub