Probleme de suppression de ligne

- - Dernière réponse : michel_m
Messages postés
15934
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 octobre 2019
- 14 juin 2019 à 10:00
Re bonjour,
j'ai progressé dans mon code et cela fonctionne.
mais je valide une ligne supplémentaire cela efface les renvois de cellule de la ligne au dessus
avez vous un conseil sur mon code ?
merci d'avance
code ci-dessous
titi
Sub Macro9()
Dim maLigne As Long
With Sheets("Fiche a completer CSV 20,20")
If .Range("F3") <> "" Then
maLigne = .Range("F" & Rows.Count).End(xlUp).Row + 1
Else
maLigne = 1
End If
Range("A2:D2").Select
Selection.Copy
Range("F" & maLigne).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
With renvoie
Dim Ws As Worksheet, Trouve As Range, Ligne As Long, Depart As String, Ok As Boolean

Application.ScreenUpdating = False
On Error Resume Next
Range("A4:E300").SpecialCells(xlCellTypeConstants, 23).ClearContents
On Error GoTo 0
If Range("A2") = "" Then Exit Sub

Ligne = maLigne
For Each Ws In Worksheets
Set Trouve = Ws.Columns("B").Find(Range("A2"), LookIn:=xlValues, LookAt:=xlWhole)
If Not Trouve Is Nothing Then
Depart = Trouve.Address
Do
Ok = True
Range("A" & Ligne) = Trouve.Offset(0, -1)
Range("c" & Ligne) = Trouve.Offset(0, 2)
Range("B" & Ligne) = Trouve.Offset(0, 1)
Range("D" & Ligne) = Trouve.Offset(0, 3)
Ligne = Ligne + 1
Set Trouve = Ws.Columns("B").FindNext(Trouve)
Loop While Trouve.Address <> Depart
End If
Next Ws
If Ok = False Then
End If
End With
End With
End Sub
Afficher la suite 

1 réponse

Meilleure réponse
Messages postés
15934
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 octobre 2019
2813
1
Merci
Bonjour

Renvoie ? variable non définie....

Conseil:
toujours utiliser Option Explicit dans la rédaction de tes codes (ca signale l'erreur "renvoie" et les autres ereurs de syntaxe)
mettre sreenupdating en t^te de macro
evite au maximum les copy.select-paste....

par exemple essaies
.Range("A2:D2").Copy .Range("A" & maligne)

tu as écris :
With Sheets("Fiche a completer CSV 20,20")
dans l'espace entre with et end with les "celleles (range) dépendent de ce with et doivent avoir un point devant range

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 64137 internautes nous ont dit merci ce mois-ci

merci michel,
en effet le point devant range permet de passer a la ligne suivante sans supprimer le contenu d'avant
merci
cordialement
Titi
michel_m
Messages postés
15934
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 octobre 2019
2813 -
tu as écrit Ok comme boolean

tu l'actives mais tu le désactives pas donc If Ok=false ???

Sur ta demande, il serait intéressant que tu joignes ton fichier pour qu'on puisse mieux t'aider
Commenter la réponse de michel_m