Projet excel

Résolu
mistersaku Messages postés 38 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 21 octobre 2010 - 18 févr. 2007 à 21:05
mistersaku Messages postés 38 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 21 octobre 2010 - 20 févr. 2007 à 12:06
Bonsoir à toutes et à tous,

Je travail sur un project mais malheureusement mes connaissances sur VBA sont un peu limitées.

J'ai un tableau, sur la feuil 1 de mon fichier, avec environs 1000 lignes, je voudrais qu'à chaque fois qu'apparaisse l'information "OK" dans la colone A que la ligne de la colonne A à BB soit supprimer de ma feuil 1 et qu'elle apparaisse dans la feuil 2. Les lignes qui ont ete coupées de la feuil 1 doivent apparaitre les unes à la suite des autres dans la feuil 2. Je cherche à garder mes informations brulantes sur la feuil1 et garder l'historique de mes informations sur la feuil2. Je suis sûr qu'avec de bonnes connaissances ce problème doit être un jeu d'enfant mais pour moi c'est un vrai casse tête. Merci d'avance pour votre aide et bonne nuit.

16 réponses

sobullshit Messages postés 178 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 8 juin 2007
19 févr. 2007 à 13:33
ta juste oublié que quand du décrémente, il fau préciser,

for i = 10 to 1 step -1

sinon ta l'option de revenir à la première ligne à chaque fois que t'efface une case
3
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
20 févr. 2007 à 11:11
C'est Rows et non pas Row

MPi
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
19 févr. 2007 à 09:00
Salut,

Essaie ceic peut être que cela peu t'aider.
Je n'ai testé que sur les dix premieres ligne pour ne pas trop perdre de temps.

Dim i As Long
For i = 1 To 10
   If ActiveWorkbook.Worksheets("Feuil1").Range("A" & i).Text = "OK" Then
       Call ActiveWorkbook.Worksheets("Feuil1").Range("A" & i).EntireRow.Cut
       Call ActiveWorkbook.Worksheets("Feuil2").Range("A1").Insert
       Call ActiveWorkbook.Worksheets("Feuil1").Range("A" & i).Delete(xlUp)
   End If
Next, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
0
sobullshit Messages postés 178 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 8 juin 2007
19 févr. 2007 à 09:10
je pense que c'est pas trop dur,

For i = 1 to xldown
   if xls.worksheet(1).Cells(i,1)="OK" then
      xls.worksheet(1).Rows(i).select
      Selection.Cut
      xls.worksheet(2).activate
      Selection.end(xldown).select
      Selection.Copy
   End if
Next i

voilà ya plein d'erreur partout mais ça te mettra ptet sur la voie.

si ta besoin de plus d'infos pke ya tro d'erreurs, jsui sur ke kk1 se fera un plaisir de t'aider
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mistersaku Messages postés 38 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 21 octobre 2010
19 févr. 2007 à 10:05
C'est presque bon ce code

Dim i As Long
For i = 1 To 10
   If ActiveWorkbook.Worksheets("Feuil1").Range("A" & i).Text = "OK" Then
       Call ActiveWorkbook.Worksheets("Feuil1").Range("A" & i).EntireRow.Cut
       Call ActiveWorkbook.Worksheets("Feuil2").Range("A1").Insert
       Call ActiveWorkbook.Worksheets("Feuil1").Range("A" & i).Delete(xlUp)
   End If
Next

Mais je suprime uniquement une cellule et non la ligne mais en tout cas merci pour ton aide. Je pense que le probleme vient de: Range("A" & i).Delete(xlUp)
0
mistersaku Messages postés 38 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 21 octobre 2010
19 févr. 2007 à 10:23
J'ai mis
 Range("A" & i).EntireRow.Delete(xlUp)
 a la place de
Range("A" & i).Delete(xlUp)

Mais maintenant le probleme c'est que je suprime une ligne sur deux. Quand i=1 et qu'en colonne A j'ai OK il suprime ma ligne (jusque la tout va bien) mais le probleme c'est quand la ligne 2 devient ligne 1, le compteur, lui, poursuit sur i=2 et ma ligne 2 devenu 1 n'est plus tenu en compte.
0
mistersaku Messages postés 38 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 21 octobre 2010
19 févr. 2007 à 11:07
Si eventuellement je veux cacher la ligne au lieu de la suprimer vous avez une petite idee de comment faire. J'ai essaye ca mais sans succes.

Call ActiveWorkbook.Worksheets("Feuil1").Range("A" & i).Hidden = True
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
19 févr. 2007 à 11:29
Salut,
Sinon tu peux essayer te
- d'abord traiter le Cut de la feuill1 et le paste sur la feuille2
- Puis une fois tout copier, tu refait une boucle qui supprime les lignes vides.

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
19 févr. 2007 à 12:00
Pour éviter de sauter une ligne quand tu en supprimes une, soit tu commences par le bas, soit tu décrémentes "i" lors de l'effacement

MPi
0
mistersaku Messages postés 38 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 21 octobre 2010
19 févr. 2007 à 12:18
J'y ai pense mais je ne sais pas comment faire. Quand je fais ca:

Dim i As Long
For i = 10 To 1

Rien ne va
0
mistersaku Messages postés 38 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 21 octobre 2010
19 févr. 2007 à 14:10
Merci a tous pour votre aide, il ne me reste plus qu'a cacher les lignes de ma feuil1 au lieu de les supprimer et c'est gagne.

Pour le moment j'utilise ca et ca marche tres bien pour les supprimer

       Call ActiveWorkbook.Worksheets("Feuil1").Range("A" & i).Delete(xlUp)

Mais ce que je veux faire maintenant c'est de cacher les lignes. Quelqu'un a peut etre une idee.
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
19 févr. 2007 à 18:12
Sheets("Feuil1").Rows(i).Hidden = True

MPi
0
mistersaku Messages postés 38 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 21 octobre 2010
19 févr. 2007 à 18:29
Voila ce que j'ai exactement mais malheureusement ca ne fonctionne pas. J'ai une err 438: Object doesn't support this property or method

Dim i As Long
For i = 10 To 1 Step -1
   If ActiveWorkbook.Worksheets("Feuil1").Range("A" & i).Text = "OK" Then
       Call ActiveWorkbook.Worksheets("Feuil1").Range("A" & i).EntireRow.Cut
       Call ActiveWorkbook.Worksheets("Feuil2").Range("A1").Insert
       Worksheets("Feuil1").Row(i).Hidden = True
   End If
Next
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
19 févr. 2007 à 22:59
Sur quelle ligne provient l'erreur ?

MPi
0
mistersaku Messages postés 38 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 21 octobre 2010
20 févr. 2007 à 05:39
Worksheets("Feuil1").Row(i).Hidden = True
0
mistersaku Messages postés 38 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 21 octobre 2010
20 févr. 2007 à 12:06
Je vais finir par croire que je suis tres tres mauvais. En tout cas je te remercie.
0
Rejoignez-nous