• Initiateur de la discussion Initiateur de la discussion Sonskriverez
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

Sonskriverez

Guest
Bonsoir le forum

Je cherche à copier sur une autre feuille et supprimer des lignes qui contiennent des informaions précises dans le contenu d'une cellule, mon code ne fait la différence et copie toute les ligne Why ?

merci de votre aide [file name=textedanstexte_20051216174157.zip size=10544]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/textedanstexte_20051216174157.zip[/file]
 

Pièces jointes

bonsoir,

ci dessous proposition recopie en colonne L de feuil2 les cellules avec samedi: on ne boucle que sur les 'samedi' et on utilise pas 'select' (avec 39000 lignes, t'es pas arrivé...)

à compléter avec ton inputbox de sélection de feuille



Dim lig As Long, fin As Long, cptr As Long
Dim liste As Collection

Set liste = New Collection

lig = 1
fin = Application.CountA(Range('L:L'))
Do Until lig = fin
On Error Resume Next
lig = Columns(12).Find('samedi', Cells(lig, 12), xlPart).Row
If Err.Number > 0 Then
Exit Do
End If
liste.Add Cells(lig, 12).Value
Loop

Set sht1 = Worksheets('feuil1')
Set sht2 = Worksheets('feuil2')

With sht2
.Cells(1, 12) = sht1.Cells(1, 12)
cptr = 1
fin = liste.Count
While cptr <= fin
.Cells(cptr + 1, 12) = liste(cptr)
cptr = cptr + 1
Wend
End With
Set liste = Nothing
 
Bonsoir Sonskriverez, le forum

je pense que le problème a lieu à la ligne
If InStrRev(cell.Value, objectif, , vbTextCompare) > 0 Then
car cell.value n'existe pas.

Tu peux donc remplacer ce bloc par :
Code:
    derligne = Range('Feuil1!L65500').End(xlUp).Row  'bien choisir la colonne des données et la ligne de départ
    For Each cell In Range('L2:L' & derligne)
        If InStrRev(cell.Value, objectif, , vbTextCompare) > 0 Then
            cell.EntireRow.Select

En tout cas, chez moi, ca marche ! B)

Bon courage

le Fnake
 
Salut Sonskriverez
bonsoir le Fil

pour en finir je crois lol
pour effacer la ligne en feuil1 si j'ai bien compris, ajouter
Code:
For Each cell In Range('L2:L' & derligne)
        If InStrRev(cell.Value, objectif, , vbTextCompare) > 0 Then
           cell.EntireRow.Select
       Selection.Copy
            sht2.Select
            Rows(j).Select
            j = j + 1
            ActiveSheet.Paste
            sht1.Select
            Selection.Delete 'supprime la ligne en Feuil1
            
        End If
    Next
bonne soirée
Bon WeekEnd
 
Bonjour et merci pour votre aide, alors c'est un mystère (1 de plus) chez moi cela ne marche pas. Ma bécane n'aime pas InStrRev tant pis je m'en suis sortie avec

If Cells(i, y) Like '*Ordered*' Then

Merci encore

il faut que le père Noël m'apporte une touche F8 la mienne est usé 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
6
Affichages
1 K
Retour