![]() |
|
Forum
|
|
|
#16 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: janvier 2006
Localisation: 69400 LIMAS
Version Excel : Excel 2000 (PC)
Messages: 6 023
|
Re
j'ai repris le fichier FICHIER mais , en l'etat il est inexploitable d'autant que je n'y vois pas d' "arrivée" ni d'heures , que je ne sais pas sur quelle feuille il faut considerer la colonne B et que j'ignore ce que tu entends par isoler |
|
|
|
| ANNONCES | |||
|
|
|
|
#17 (permalink) |
|
XLDnaute Junior
Date d'inscription: avril 2007
Messages: 59
|
pardon, je n'avais pas vu qu'il y avait une deuxième page donc je croyais que personne n'avais répondu...
Je met un fichier exemple. Comme au début, je veux récupérer les heures qui correspondent à "arrivée" (voir macro) et je souhaiterai pousser un peu plus loin en conservant le numéro à 6 chiffres après arrivée. Pour être plus clair, le résultat souhaité est sur le classeur test en feuille 2. J'ai surligné en jaune les lignes qui m'intéressent, la macro existante fonctionne très bien, je veux juste la compléter. Je n'ai pas enregistrer la macro. Code:
Sub recup_heures()
Application.ScreenUpdating = False
For n = Sheets("recup heures").Range("C65536").End(xlUp).Row To 1 Step -1
If InStr(Sheets("recup heures").Range("C" & n), "Arrivée") = 0 Then
Sheets("recup heures").Rows(n).Delete
Sheets("recup heures").Range("B" & n & ":C" & n).ClearContents
End If
Next n
Application.ScreenUpdating = True
Range("A1").CurrentRegion.Select
Selection.Copy
End Sub
Dernière modification par eillon ; 08/07/2008 à 14h10. |
|
|
|
|
|
#18 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: janvier 2006
Localisation: 69400 LIMAS
Version Excel : Excel 2000 (PC)
Messages: 6 023
|
Re
A tester: Code:
Sub recup_heures()
Application.ScreenUpdating = False
For n = Sheets("recup heures").Range("C65536").End(xlUp).Row To 1 Step -1
If InStr(Sheets("recup heures").Range("C" & n), "Arrivée") = 0 Then
Sheets("recup heures").Rows(n).Delete
Else
Sheets("recup heures").Range("C" & n) = Left(Range("C" & n), 14)
End If
Next n
Application.ScreenUpdating = True
Range("A1").CurrentRegion.Select
Selection.Copy
End Sub
Note: J'ai laissé les 2 dernieres lignes mais je n'en vois pas l'utilité
|
|
|
|
|
|
#20 (permalink) |
|
XLDnaute Junior
Date d'inscription: avril 2007
Messages: 59
|
J'ai fait avec ça, mais je pense qu'on peut faire plus simple..
Code:
Sub recup_heures()
Application.ScreenUpdating = False
For n = Sheets("recup heures").Range("C65536").End(xlUp).Row To 1 Step -1
If InStr(Sheets("recup heures").Range("C" & n), "Arrivée") = 0 Then
Sheets("recup heures").Rows(n).Delete
Sheets("recup heures").Columns("B:B").ClearContents
Else
Sheets("recup heures").Range("C" & n) = Left(Range("C" & n), 14)
Sheets("recup heures").Range("C" & n) = Right(Range("C" & n), 6)
End If
Next n
Application.ScreenUpdating = True
Range("A1").CurrentRegion.Select
Selection.Copy
End Sub
|
|
|
|
|
|
#21 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: janvier 2006
Localisation: 69400 LIMAS
Version Excel : Excel 2000 (PC)
Messages: 6 023
|
Re
Pas bien meilleur ! Code:
Sub recup_heures()
Application.ScreenUpdating = False
For n = Sheets("recup heures").Range("C65536").End(xlUp).Row To 1 Step -1
If InStr(Sheets("recup heures").Range("C" & n), "Arrivée") = 0 Then
Sheets("recup heures").Rows(n).Delete
Else
Sheets("recup heures").Range("B" & n) = Mid(Range("C" & n), 9, 6)
Sheets("recup heures").Range("C" & n) = ""
End If
Next n
Application.ScreenUpdating = True
Range("A1").CurrentRegion.Select
Selection.Copy
End Sub
|
|
|
|
|
|
#22 (permalink) |
|
XLDnaute Junior
Date d'inscription: avril 2007
Messages: 59
|
J'ai trouvé mon bonheur
Je fini en sélection B:B, même si j'aurais préférer avoir plage B avec des données, j'ai essayer ça mais il me sélectionne que B1 Code:
Range("B1", range("B1").end(xlup)).select
Code:
Sub recup_heures()
Application.ScreenUpdating = False
For n = Sheets("recup heures").Range("C65536").End(xlUp).Row To 1 Step -1
If InStr(Sheets("recup heures").Range("C" & n), "Arrivée") = 0 Then
Sheets("recup heures").Rows(n).Delete
Else
Sheets("recup heures").Range("B" & n) = Mid(Range("C" & n), 9, 6)
Sheets("recup heures").Range("C" & n) = ""
End If
Next n
Range("B1").End(xlDown).Delete
Range("B:B").Select
Selection.Copy
Application.ScreenUpdating = True
End Sub
|
|
|
|
|
|
#23 (permalink) |
|
XLDnaute Junior
Date d'inscription: avril 2007
Messages: 59
|
C bon j'ai trouvé, si je lui fais chercher vers le haut en partant de B1, il ne trouvera que B1...
![]() Code:
Range("B1", Range("B1").End(xlDown)).Select
![]() |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| Supprimer les lignes double pour garder que les nouvelles lignes saisies ? | naouah | Forum Excel | 6 | 01/10/2006 03h01 |
| Supprimer des lignes disperses sur excel | amnay2 | Forum Excel | 35 | 17/07/2006 12h22 |
| Supprimer des lignes dans excel | Bob | Forum Excel | 4 | 20/01/2006 16h59 |
| Supprimer des lignes | JB | Forum Excel | 5 | 11/01/2006 12h09 |
| supprimer lignes vides après entre lignes 2 et 270 | difovelo | Forum Excel | 3 | 18/05/2005 22h34 |