J'aimerais simplifier cette petite procédure. Elle a pour mission de
récupérer un nombre variable de données dans un nombre variable de tableaux
identiques (de 39 lignes) présent sur une même feuille de calcul. Les
informations récupérées sont collées dans une autre feuille pour créer un
graphique.
Les données dans les tableaux sont placées verticalement, alors que dans la
feuille de destination elles sont placées horizontalement. Certaines
cellules de la feuille source ne sont pas "récupérées" lors de la copie.
J'ai fait ce bout de code, qui fonctionne très bien mais que je ne trouve
pas très "élégant" et suis persuadé qu'il y a bien mieux à faire. Sachant
que l'on progresse dans la douleur, je vous colle ci-dessous le code de ma
procédure.
J'avais essayé de récupérer toutes les données dans un objet range et faire
un collage spécial transposé, mais les cellules non récupérées créaient des
colonnes vide.
Voilà, avis aux amateurs, et merci pour vos suggestions.
Jean-Paul
Sub DonnéesGraphique()
'Dim GraphZone As Range
'Set GraphZone = Nothing
NbFolios = Feuil1.[A65000].End(xlUp).Row / 39
For x = 0 To NbFolios - 1
Ldépart = 4 + (x * 39)
ColDépart = 4
For H = ColDépart To 16
If Feuil1.Cells(Ldépart, H).Value <> "" Then 'je
récupère les données de la colonne si la cellule est renseignée
ActiveCell.Value = Feuil1.Cells(Ldépart, H).Value
ActiveCell.Offset(0, 1).Value = Feuil1.Cells(Ldépart + 2,
H).Value
ActiveCell.Offset(0, 2).Value = Feuil1.Cells(Ldépart + 3,
H).Value
ActiveCell.Offset(0, 3).Value = Feuil1.Cells(Ldépart + 5,
H).Value
ActiveCell.Offset(0, 4).Value = Feuil1.Cells(Ldépart + 31,
H).Value
ActiveCell.Offset(1, 0).Activate
End If
Next
Next
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel.C
Bonjour. Il n'y a pas grand chose à "gratter" dessus. J'ai enlevé les "select" et modifié quelques détails. La macro n'est pas testée.
Sub DonnéesGraphique() Dim sh As Worksheet, Ctr As Integer 'Set GraphZone = Nothing
Set sh = Sheets("Extraction Graphiques")
Ctr = 2
With Feuil1 For x = 0 To .[A65000].End(xlUp).Row / 39 - 1 Ldépart = 4 + (x * 39) For H = 4 To 16 If Feuil1.Cells(Ldépart, H).Value <> "" Then 'je récupère les données de la colonne si la cellule est renseignée sh.Cells(Ctr, 1).Value = .Cells(Ldépart, H).Value sh.Cells(Ctr, 1).Offset(0, 1).Value = .Cells(Ldépart + 2, H).Value sh.Cells(Ctr, 1).Offset(0, 2).Value = .Cells(Ldépart + 3, H).Value sh.Cells(Ctr, 1).Offset(0, 3).Value = .Cells(Ldépart + 5, H).Value sh.Cells(Ctr, 1).Offset(0, 4).Value = .Cells(Ldépart + 31, H).Value Ctr = Ctr + 1 End If Next Next End With End Sub
Cordialement. Daniel "Jean-Paul GIORGETTI" a écrit dans le message de news:
Bonjour,
J'aimerais simplifier cette petite procédure. Elle a pour mission de récupérer un nombre variable de données dans un nombre variable de tableaux identiques (de 39 lignes) présent sur une même feuille de calcul. Les informations récupérées sont collées dans une autre feuille pour créer un graphique.
Les données dans les tableaux sont placées verticalement, alors que dans la feuille de destination elles sont placées horizontalement. Certaines cellules de la feuille source ne sont pas "récupérées" lors de la copie.
J'ai fait ce bout de code, qui fonctionne très bien mais que je ne trouve pas très "élégant" et suis persuadé qu'il y a bien mieux à faire. Sachant que l'on progresse dans la douleur, je vous colle ci-dessous le code de ma procédure. J'avais essayé de récupérer toutes les données dans un objet range et faire un collage spécial transposé, mais les cellules non récupérées créaient des colonnes vide.
Voilà, avis aux amateurs, et merci pour vos suggestions.
Jean-Paul
Sub DonnéesGraphique() 'Dim GraphZone As Range 'Set GraphZone = Nothing
NbFolios = Feuil1.[A65000].End(xlUp).Row / 39 For x = 0 To NbFolios - 1 Ldépart = 4 + (x * 39) ColDépart = 4 For H = ColDépart To 16 If Feuil1.Cells(Ldépart, H).Value <> "" Then 'je récupère les données de la colonne si la cellule est renseignée ActiveCell.Value = Feuil1.Cells(Ldépart, H).Value ActiveCell.Offset(0, 1).Value = Feuil1.Cells(Ldépart + 2, H).Value ActiveCell.Offset(0, 2).Value = Feuil1.Cells(Ldépart + 3, H).Value ActiveCell.Offset(0, 3).Value = Feuil1.Cells(Ldépart + 5, H).Value ActiveCell.Offset(0, 4).Value = Feuil1.Cells(Ldépart + 31, H).Value ActiveCell.Offset(1, 0).Activate End If Next Next End Sub
Bonjour.
Il n'y a pas grand chose à "gratter" dessus. J'ai enlevé les "select" et
modifié quelques détails. La macro n'est pas testée.
Sub DonnéesGraphique()
Dim sh As Worksheet, Ctr As Integer
'Set GraphZone = Nothing
Set sh = Sheets("Extraction Graphiques")
Ctr = 2
With Feuil1
For x = 0 To .[A65000].End(xlUp).Row / 39 - 1
Ldépart = 4 + (x * 39)
For H = 4 To 16
If Feuil1.Cells(Ldépart, H).Value <> "" Then 'je
récupère les données de la colonne si la cellule est renseignée
sh.Cells(Ctr, 1).Value = .Cells(Ldépart, H).Value
sh.Cells(Ctr, 1).Offset(0, 1).Value = .Cells(Ldépart + 2,
H).Value
sh.Cells(Ctr, 1).Offset(0, 2).Value = .Cells(Ldépart + 3,
H).Value
sh.Cells(Ctr, 1).Offset(0, 3).Value = .Cells(Ldépart + 5,
H).Value
sh.Cells(Ctr, 1).Offset(0, 4).Value = .Cells(Ldépart + 31,
H).Value
Ctr = Ctr + 1
End If
Next
Next
End With
End Sub
Cordialement.
Daniel
"Jean-Paul GIORGETTI" <nospam-jp.giorgetti@free.fr> a écrit dans le message
de news: u7RWduipIHA.3804@TK2MSFTNGP02.phx.gbl...
Bonjour,
J'aimerais simplifier cette petite procédure. Elle a pour mission de
récupérer un nombre variable de données dans un nombre variable de
tableaux
identiques (de 39 lignes) présent sur une même feuille de calcul. Les
informations récupérées sont collées dans une autre feuille pour créer un
graphique.
Les données dans les tableaux sont placées verticalement, alors que dans
la
feuille de destination elles sont placées horizontalement. Certaines
cellules de la feuille source ne sont pas "récupérées" lors de la copie.
J'ai fait ce bout de code, qui fonctionne très bien mais que je ne trouve
pas très "élégant" et suis persuadé qu'il y a bien mieux à faire. Sachant
que l'on progresse dans la douleur, je vous colle ci-dessous le code de ma
procédure.
J'avais essayé de récupérer toutes les données dans un objet range et
faire
un collage spécial transposé, mais les cellules non récupérées créaient
des
colonnes vide.
Voilà, avis aux amateurs, et merci pour vos suggestions.
Jean-Paul
Sub DonnéesGraphique()
'Dim GraphZone As Range
'Set GraphZone = Nothing
NbFolios = Feuil1.[A65000].End(xlUp).Row / 39
For x = 0 To NbFolios - 1
Ldépart = 4 + (x * 39)
ColDépart = 4
For H = ColDépart To 16
If Feuil1.Cells(Ldépart, H).Value <> "" Then 'je
récupère les données de la colonne si la cellule est renseignée
ActiveCell.Value = Feuil1.Cells(Ldépart, H).Value
ActiveCell.Offset(0, 1).Value = Feuil1.Cells(Ldépart + 2,
H).Value
ActiveCell.Offset(0, 2).Value = Feuil1.Cells(Ldépart + 3,
H).Value
ActiveCell.Offset(0, 3).Value = Feuil1.Cells(Ldépart + 5,
H).Value
ActiveCell.Offset(0, 4).Value = Feuil1.Cells(Ldépart + 31,
H).Value
ActiveCell.Offset(1, 0).Activate
End If
Next
Next
End Sub
Bonjour. Il n'y a pas grand chose à "gratter" dessus. J'ai enlevé les "select" et modifié quelques détails. La macro n'est pas testée.
Sub DonnéesGraphique() Dim sh As Worksheet, Ctr As Integer 'Set GraphZone = Nothing
Set sh = Sheets("Extraction Graphiques")
Ctr = 2
With Feuil1 For x = 0 To .[A65000].End(xlUp).Row / 39 - 1 Ldépart = 4 + (x * 39) For H = 4 To 16 If Feuil1.Cells(Ldépart, H).Value <> "" Then 'je récupère les données de la colonne si la cellule est renseignée sh.Cells(Ctr, 1).Value = .Cells(Ldépart, H).Value sh.Cells(Ctr, 1).Offset(0, 1).Value = .Cells(Ldépart + 2, H).Value sh.Cells(Ctr, 1).Offset(0, 2).Value = .Cells(Ldépart + 3, H).Value sh.Cells(Ctr, 1).Offset(0, 3).Value = .Cells(Ldépart + 5, H).Value sh.Cells(Ctr, 1).Offset(0, 4).Value = .Cells(Ldépart + 31, H).Value Ctr = Ctr + 1 End If Next Next End With End Sub
Cordialement. Daniel "Jean-Paul GIORGETTI" a écrit dans le message de news:
Bonjour,
J'aimerais simplifier cette petite procédure. Elle a pour mission de récupérer un nombre variable de données dans un nombre variable de tableaux identiques (de 39 lignes) présent sur une même feuille de calcul. Les informations récupérées sont collées dans une autre feuille pour créer un graphique.
Les données dans les tableaux sont placées verticalement, alors que dans la feuille de destination elles sont placées horizontalement. Certaines cellules de la feuille source ne sont pas "récupérées" lors de la copie.
J'ai fait ce bout de code, qui fonctionne très bien mais que je ne trouve pas très "élégant" et suis persuadé qu'il y a bien mieux à faire. Sachant que l'on progresse dans la douleur, je vous colle ci-dessous le code de ma procédure. J'avais essayé de récupérer toutes les données dans un objet range et faire un collage spécial transposé, mais les cellules non récupérées créaient des colonnes vide.
Voilà, avis aux amateurs, et merci pour vos suggestions.
Jean-Paul
Sub DonnéesGraphique() 'Dim GraphZone As Range 'Set GraphZone = Nothing
NbFolios = Feuil1.[A65000].End(xlUp).Row / 39 For x = 0 To NbFolios - 1 Ldépart = 4 + (x * 39) ColDépart = 4 For H = ColDépart To 16 If Feuil1.Cells(Ldépart, H).Value <> "" Then 'je récupère les données de la colonne si la cellule est renseignée ActiveCell.Value = Feuil1.Cells(Ldépart, H).Value ActiveCell.Offset(0, 1).Value = Feuil1.Cells(Ldépart + 2, H).Value ActiveCell.Offset(0, 2).Value = Feuil1.Cells(Ldépart + 3, H).Value ActiveCell.Offset(0, 3).Value = Feuil1.Cells(Ldépart + 5, H).Value ActiveCell.Offset(0, 4).Value = Feuil1.Cells(Ldépart + 31, H).Value ActiveCell.Offset(1, 0).Activate End If Next Next End Sub
Jean-Paul GIORGETTI
Bonjour Daniel,
Merci pour le temps consacré, je vais tester.
A+
Jean-Paul
"Daniel.C" a écrit dans le message de news: #
Bonjour. Il n'y a pas grand chose à "gratter" dessus. J'ai enlevé les "select" et modifié quelques détails. La macro n'est pas testée.
Sub DonnéesGraphique() Dim sh As Worksheet, Ctr As Integer 'Set GraphZone = Nothing
Set sh = Sheets("Extraction Graphiques")
Ctr = 2
With Feuil1 For x = 0 To .[A65000].End(xlUp).Row / 39 - 1 Ldépart = 4 + (x * 39) For H = 4 To 16 If Feuil1.Cells(Ldépart, H).Value <> "" Then 'je récupère les données de la colonne si la cellule est renseignée sh.Cells(Ctr, 1).Value = .Cells(Ldépart, H).Value sh.Cells(Ctr, 1).Offset(0, 1).Value = .Cells(Ldépart + 2, H).Value sh.Cells(Ctr, 1).Offset(0, 2).Value = .Cells(Ldépart + 3, H).Value sh.Cells(Ctr, 1).Offset(0, 3).Value = .Cells(Ldépart + 5, H).Value sh.Cells(Ctr, 1).Offset(0, 4).Value = .Cells(Ldépart + 31, H).Value Ctr = Ctr + 1 End If Next Next End With End Sub
Cordialement. Daniel "Jean-Paul GIORGETTI" a écrit dans le message
de news:
Bonjour,
J'aimerais simplifier cette petite procédure. Elle a pour mission de récupérer un nombre variable de données dans un nombre variable de tableaux identiques (de 39 lignes) présent sur une même feuille de calcul. Les informations récupérées sont collées dans une autre feuille pour créer un
graphique.
Les données dans les tableaux sont placées verticalement, alors que dans la feuille de destination elles sont placées horizontalement. Certaines cellules de la feuille source ne sont pas "récupérées" lors de la copie.
J'ai fait ce bout de code, qui fonctionne très bien mais que je ne trouve
pas très "élégant" et suis persuadé qu'il y a bien mieux à faire. Sachant
que l'on progresse dans la douleur, je vous colle ci-dessous le code de ma
procédure. J'avais essayé de récupérer toutes les données dans un objet range et faire un collage spécial transposé, mais les cellules non récupérées créaient des colonnes vide.
Voilà, avis aux amateurs, et merci pour vos suggestions.
Jean-Paul
Sub DonnéesGraphique() 'Dim GraphZone As Range 'Set GraphZone = Nothing
NbFolios = Feuil1.[A65000].End(xlUp).Row / 39 For x = 0 To NbFolios - 1 Ldépart = 4 + (x * 39) ColDépart = 4 For H = ColDépart To 16 If Feuil1.Cells(Ldépart, H).Value <> "" Then 'je récupère les données de la colonne si la cellule est renseignée ActiveCell.Value = Feuil1.Cells(Ldépart, H).Value ActiveCell.Offset(0, 1).Value = Feuil1.Cells(Ldépart + 2, H).Value ActiveCell.Offset(0, 2).Value = Feuil1.Cells(Ldépart + 3, H).Value ActiveCell.Offset(0, 3).Value = Feuil1.Cells(Ldépart + 5, H).Value ActiveCell.Offset(0, 4).Value = Feuil1.Cells(Ldépart + 31, H).Value ActiveCell.Offset(1, 0).Activate End If Next Next End Sub
Bonjour Daniel,
Merci pour le temps consacré, je vais tester.
A+
Jean-Paul
"Daniel.C" <dZZZcolardelle@free.fr> a écrit dans le message de news:
#uyzYSrpIHA.4672@TK2MSFTNGP05.phx.gbl...
Bonjour.
Il n'y a pas grand chose à "gratter" dessus. J'ai enlevé les "select" et
modifié quelques détails. La macro n'est pas testée.
Sub DonnéesGraphique()
Dim sh As Worksheet, Ctr As Integer
'Set GraphZone = Nothing
Set sh = Sheets("Extraction Graphiques")
Ctr = 2
With Feuil1
For x = 0 To .[A65000].End(xlUp).Row / 39 - 1
Ldépart = 4 + (x * 39)
For H = 4 To 16
If Feuil1.Cells(Ldépart, H).Value <> "" Then 'je
récupère les données de la colonne si la cellule est renseignée
sh.Cells(Ctr, 1).Value = .Cells(Ldépart, H).Value
sh.Cells(Ctr, 1).Offset(0, 1).Value = .Cells(Ldépart + 2,
H).Value
sh.Cells(Ctr, 1).Offset(0, 2).Value = .Cells(Ldépart + 3,
H).Value
sh.Cells(Ctr, 1).Offset(0, 3).Value = .Cells(Ldépart + 5,
H).Value
sh.Cells(Ctr, 1).Offset(0, 4).Value = .Cells(Ldépart + 31,
H).Value
Ctr = Ctr + 1
End If
Next
Next
End With
End Sub
Cordialement.
Daniel
"Jean-Paul GIORGETTI" <nospam-jp.giorgetti@free.fr> a écrit dans le
message
de news: u7RWduipIHA.3804@TK2MSFTNGP02.phx.gbl...
Bonjour,
J'aimerais simplifier cette petite procédure. Elle a pour mission de
récupérer un nombre variable de données dans un nombre variable de
tableaux
identiques (de 39 lignes) présent sur une même feuille de calcul. Les
informations récupérées sont collées dans une autre feuille pour créer
un
graphique.
Les données dans les tableaux sont placées verticalement, alors que dans
la
feuille de destination elles sont placées horizontalement. Certaines
cellules de la feuille source ne sont pas "récupérées" lors de la copie.
J'ai fait ce bout de code, qui fonctionne très bien mais que je ne
trouve
pas très "élégant" et suis persuadé qu'il y a bien mieux à faire.
Sachant
que l'on progresse dans la douleur, je vous colle ci-dessous le code de
ma
procédure.
J'avais essayé de récupérer toutes les données dans un objet range et
faire
un collage spécial transposé, mais les cellules non récupérées créaient
des
colonnes vide.
Voilà, avis aux amateurs, et merci pour vos suggestions.
Jean-Paul
Sub DonnéesGraphique()
'Dim GraphZone As Range
'Set GraphZone = Nothing
NbFolios = Feuil1.[A65000].End(xlUp).Row / 39
For x = 0 To NbFolios - 1
Ldépart = 4 + (x * 39)
ColDépart = 4
For H = ColDépart To 16
If Feuil1.Cells(Ldépart, H).Value <> "" Then 'je
récupère les données de la colonne si la cellule est renseignée
ActiveCell.Value = Feuil1.Cells(Ldépart, H).Value
ActiveCell.Offset(0, 1).Value = Feuil1.Cells(Ldépart + 2,
H).Value
ActiveCell.Offset(0, 2).Value = Feuil1.Cells(Ldépart + 3,
H).Value
ActiveCell.Offset(0, 3).Value = Feuil1.Cells(Ldépart + 5,
H).Value
ActiveCell.Offset(0, 4).Value = Feuil1.Cells(Ldépart + 31,
H).Value
ActiveCell.Offset(1, 0).Activate
End If
Next
Next
End Sub
Bonjour. Il n'y a pas grand chose à "gratter" dessus. J'ai enlevé les "select" et modifié quelques détails. La macro n'est pas testée.
Sub DonnéesGraphique() Dim sh As Worksheet, Ctr As Integer 'Set GraphZone = Nothing
Set sh = Sheets("Extraction Graphiques")
Ctr = 2
With Feuil1 For x = 0 To .[A65000].End(xlUp).Row / 39 - 1 Ldépart = 4 + (x * 39) For H = 4 To 16 If Feuil1.Cells(Ldépart, H).Value <> "" Then 'je récupère les données de la colonne si la cellule est renseignée sh.Cells(Ctr, 1).Value = .Cells(Ldépart, H).Value sh.Cells(Ctr, 1).Offset(0, 1).Value = .Cells(Ldépart + 2, H).Value sh.Cells(Ctr, 1).Offset(0, 2).Value = .Cells(Ldépart + 3, H).Value sh.Cells(Ctr, 1).Offset(0, 3).Value = .Cells(Ldépart + 5, H).Value sh.Cells(Ctr, 1).Offset(0, 4).Value = .Cells(Ldépart + 31, H).Value Ctr = Ctr + 1 End If Next Next End With End Sub
Cordialement. Daniel "Jean-Paul GIORGETTI" a écrit dans le message
de news:
Bonjour,
J'aimerais simplifier cette petite procédure. Elle a pour mission de récupérer un nombre variable de données dans un nombre variable de tableaux identiques (de 39 lignes) présent sur une même feuille de calcul. Les informations récupérées sont collées dans une autre feuille pour créer un
graphique.
Les données dans les tableaux sont placées verticalement, alors que dans la feuille de destination elles sont placées horizontalement. Certaines cellules de la feuille source ne sont pas "récupérées" lors de la copie.
J'ai fait ce bout de code, qui fonctionne très bien mais que je ne trouve
pas très "élégant" et suis persuadé qu'il y a bien mieux à faire. Sachant
que l'on progresse dans la douleur, je vous colle ci-dessous le code de ma
procédure. J'avais essayé de récupérer toutes les données dans un objet range et faire un collage spécial transposé, mais les cellules non récupérées créaient des colonnes vide.
Voilà, avis aux amateurs, et merci pour vos suggestions.
Jean-Paul
Sub DonnéesGraphique() 'Dim GraphZone As Range 'Set GraphZone = Nothing
NbFolios = Feuil1.[A65000].End(xlUp).Row / 39 For x = 0 To NbFolios - 1 Ldépart = 4 + (x * 39) ColDépart = 4 For H = ColDépart To 16 If Feuil1.Cells(Ldépart, H).Value <> "" Then 'je récupère les données de la colonne si la cellule est renseignée ActiveCell.Value = Feuil1.Cells(Ldépart, H).Value ActiveCell.Offset(0, 1).Value = Feuil1.Cells(Ldépart + 2, H).Value ActiveCell.Offset(0, 2).Value = Feuil1.Cells(Ldépart + 3, H).Value ActiveCell.Offset(0, 3).Value = Feuil1.Cells(Ldépart + 5, H).Value ActiveCell.Offset(0, 4).Value = Feuil1.Cells(Ldépart + 31, H).Value ActiveCell.Offset(1, 0).Activate End If Next Next End Sub