FORUM Tom's Hardware » Programmation » Autre » probleme macro excel
 

probleme macro excel

Il y a 341 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : probleme macro excel
 
Plus d'informations

Hello tout le monde

J'aimerais creer une macro qui me permettrait de trier une feuille excel.
L'idee est la suivante: supprimer toutes les lignes vides, et supprimer toutes les lignes dont la premiere cellule n'est pas "work order" ou "due date". Je ne sais pas trop trop comment faut s'y prendre donc si quelqu'un peut m'aider...

Michi

Plus d'informations

Bonm j'ai bidouille un truc ca donne ca

Sub Macro1()
'
' Macro1 Macro
' Macro recorded 06/07/2006 by jguillermin
'
For i = 1 To 16000
Cells(i, 1).Select
If ActiveCell.FormulaR1C1 <> "Works order " Then
If ActiveCell.FormulaR1C1 = "Due date" Then
Else: Rows(Cells(i, 1).Row & ":" & Cells(i, 1).Row).Delete Shift:=xlUp
End If
Else
End If
Next i
End Sub


Le trou entre Works order et Then est normal. Ca fonctionne mais qu'a moitie... Il me traite correctement une ligne sur deux... Donc je suis oblige de le lancer deux ou trois fois pour arriver a mon resultat. Une idee?

PS: desole de ne pas mettre d'accents mais je suis actuellement en stage en UK donc je peux pas mettre d'accents

Plus d'informations

Autre question. Quelle est l instruction pour sortir d'une boucle If sans sortir du programme?

le corps s'évade, les idées persistent.
Plus d'informations

a écrit :

Code :
  1. For i = 1 To 16000
  2. Cells(i, 1).Select
  3. If ActiveCell.FormulaR1C1 <> "Works order            " Then
  4.     If ActiveCell.FormulaR1C1 = "Due date" Then
  5.     Else: Rows(Cells(i, 1).Row & ":" & Cells(i, 1).Row).Delete Shift:=xlUp
  6.     End If
  7. Else
  8. End If
  9. Next i
  10. End Sub



Ouh... c'est moche tout ca...
Quand tu postes sur ppc, met les balise [code ] et [/code ] (sans les espaces) avant et après tes lignes de code.
remplace tes formular1c1 par une variable à laquelle tu affecte une adresse de cellule.
les <> sont trèèèèèèèès peu pratique en vba.

Code :
  1. dim cel as range
  2. set cel=range("A1" )  // si c'est ta colonne A
  3. For i = 0 To 16000
  4.     If cel.offset(i) = "Works order" or cel.offset(i) = "due date" Then
  5.     Else
  6.     range((i+1) & ":" & (i+1)).Delete // pas sur que ca marche le coup du i+1, si c'est le cas, passe par une variable intermédiaire
  7.     End If
  8. Next i
  9. End Sub



a écrit :

Autre question. Quelle est l instruction pour sortir d'une boucle If sans sortir du programme?


les deux mots boucle et if ne sont pas compatible. l'instruction if n'engendre pas une boucle.
si tu veux sortir d'un if:

Code :
  1. Exit if


Message édité par Nova13 le 06-07-2006 à 13:55:08
Plus d'informations

bonjour,
En principe pour déléter des row on procède à l'envers
et on ne select pas

Code :
  1. For i = 16000 To 1 Step -1
  2. if Cells(i, 1)= "Due date" Then Rows(i).delete
  3. Next



Pour le Exit if je suis... dubitatif !
A+


Message édité par galopin01 le 06-07-2006 à 14:00:10
Plus d'informations

Michi.
J'ai developpe un truc qui marche en suivant vos conseil.Merchi beaucoup


Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » Autre » probleme macro excel
 

Annonces Google
Publicité