Probleme de suppression de ligne

Fermé
titi - 13 juin 2019 à 16:57
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 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
A voir également:

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié le 14 juin 2019 à 09:50
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
1
merci michel,
en effet le point devant range permet de passer a la ligne suivante sans supprimer le contenu d'avant
merci
cordialement
Titi
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié le 14 juin 2019 à 10:01
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
0