puppetquito
XLDnaute Nouveau
Bonjour,
Cela ne fait pas longtemps que j'utilise vba et j'aurais besoin de votre aide sur un problème toujours sans issue après plusieurs heures...
J'obtiens le tableau en pièce jointe et par soucis de mise en page, pour toutes les lignes ayant le même indice "C" (colonne 1) et le même indice "Exp" (colonne 2), mon code regroupe les données de toutes les années sur la première ligne.
Et là arrive le problème : je voudrais supprimer les lignes dont j'ai copié les données et qui sont maintenant inutiles, à savoir les lignes 2, 7, 9, 12, 15, 17, 20, 22, 23, 26, 27,etc.
J'ai tenté avec le code suivant (entre autres) :
Sheets("EAC").Select
Plg = Rows(3).Select
For K = 4 To DernLigne2
If Feuil2.Cells(K, 1).Value = Feuil2.Cells(K - 1, 1).Value And Feuil2.Cells(K, 2).Value = Feuil2.Cells(K - 1, 2).Value Then
Q = Q + 1
Else
Ligne1 = Feuil2.Cells((K - 1) - (Q - 2), 1).Row (la ligne juste en dessous de celle que je souhaite garder avec toutes les infos)
Ligne2 = Feuil2.Cells((K - 1), 1).Row (la ligne juste avant la ligne n'ayant pas les mêmes indices "C" et "Exp")
Plg = Union(Plg, Rows(Ligne1 & ":" & Ligne2)).Select
Q = 1
End If
Next K
Plg.EntireRow.Delete
End With
End Sub
En effet, le problème si je supprime les lignes dont je ne veux plus au fur et à mesure et que lorsqu'il re-rentre dans la boucle For, la ligne située sous celle qui a été supprimée prend son indice et n'est donc pas testée...
J'ai donc choisi d'essayer de faire sélectionner à mon programme toutes les lignes que je voulais supprimer (par une sorte d'union foireuse) et de supprimer cette sélection à la fin.
Il me sort une erreur de type 424. Je ne la comprends pas dans ce cas là car je n'ai pas utilisé d'objet non défini ou mal orthographié.
Je pense qu'il y a un problème avec l'union. A priori ce n'est pas un problème avec les indices car j'ai utilisé ce genre d'indices plus tôt dans le code pour calculer des moyennes et pour regrouper les données et cela a fonctionné.
De plus, pour faire cette union, je croyais avoir besoin d'une sélection initiale et j'ai donc dû créer la ligne 3...
C'est pas très joli tout ça, quelqu'un saurait-il comment me dépatouiller de ça s'il vous plait ?
Merci d'avance !!
Cela ne fait pas longtemps que j'utilise vba et j'aurais besoin de votre aide sur un problème toujours sans issue après plusieurs heures...
J'obtiens le tableau en pièce jointe et par soucis de mise en page, pour toutes les lignes ayant le même indice "C" (colonne 1) et le même indice "Exp" (colonne 2), mon code regroupe les données de toutes les années sur la première ligne.
Et là arrive le problème : je voudrais supprimer les lignes dont j'ai copié les données et qui sont maintenant inutiles, à savoir les lignes 2, 7, 9, 12, 15, 17, 20, 22, 23, 26, 27,etc.
J'ai tenté avec le code suivant (entre autres) :
Sheets("EAC").Select
Plg = Rows(3).Select
For K = 4 To DernLigne2
If Feuil2.Cells(K, 1).Value = Feuil2.Cells(K - 1, 1).Value And Feuil2.Cells(K, 2).Value = Feuil2.Cells(K - 1, 2).Value Then
Q = Q + 1
Else
Ligne1 = Feuil2.Cells((K - 1) - (Q - 2), 1).Row (la ligne juste en dessous de celle que je souhaite garder avec toutes les infos)
Ligne2 = Feuil2.Cells((K - 1), 1).Row (la ligne juste avant la ligne n'ayant pas les mêmes indices "C" et "Exp")
Plg = Union(Plg, Rows(Ligne1 & ":" & Ligne2)).Select
Q = 1
End If
Next K
Plg.EntireRow.Delete
End With
End Sub
En effet, le problème si je supprime les lignes dont je ne veux plus au fur et à mesure et que lorsqu'il re-rentre dans la boucle For, la ligne située sous celle qui a été supprimée prend son indice et n'est donc pas testée...
J'ai donc choisi d'essayer de faire sélectionner à mon programme toutes les lignes que je voulais supprimer (par une sorte d'union foireuse) et de supprimer cette sélection à la fin.
Il me sort une erreur de type 424. Je ne la comprends pas dans ce cas là car je n'ai pas utilisé d'objet non défini ou mal orthographié.
Je pense qu'il y a un problème avec l'union. A priori ce n'est pas un problème avec les indices car j'ai utilisé ce genre d'indices plus tôt dans le code pour calculer des moyennes et pour regrouper les données et cela a fonctionné.
De plus, pour faire cette union, je croyais avoir besoin d'une sélection initiale et j'ai donc dû créer la ligne 3...
C'est pas très joli tout ça, quelqu'un saurait-il comment me dépatouiller de ça s'il vous plait ?
Merci d'avance !!