Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/01/2012, 10h57   #1
Nouveau Membre du Club
 
Inscription : octobre 2011
Messages : 106
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 106
Points : 38
Points : 38
Par défaut suppression de ligne ne marche plus

Bonjour à tous,
j'ai un code qui marchait la semaine dernière et aujourd'hui, lundi... j'arrive pas à comprendre pourquoi il ne veut plus marcher...
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Option Explicit
 
 Public Sh As Worksheet
Public i As Integer, Num_Fact As String
Public np As Integer, Nc As Integer
Public Rnp As Range, Plag As Range
 '---------------------------------------------------------Créer un nouveau devis vierge
 Sub Nouveau_Devis()
 
 Num_Fact = Range("C10").Value
 
 
Application.DisplayAlerts = False
For Each Sh In ThisWorkbook.Worksheets
    If InStr(Sh.Name, "Détail") > 0 Then
        Sh.Delete
 
    End If
Next Sh
Worksheets("Devis").Protect userinterfaceonly:=True
 
 Sheets("Devis").Activate
 
  Set Plag = Range("A23:A150")
 
 For Each Rnp In Plag
    If Rnp.Value = "Pied" Then ' il ne trouve pas la bonne cellule visiblement
    np = Rnp.Row 'il met np = 0 ? 
    Nc = np - 1
  End If
Next
 
 
  Range("F19").Value = "SDV-" & Year(Date) & "-" & Month(Date) & Day(Date) & "-" & Format(Num_Fact + 1, "0")
 Range("L5").Value = Date
 Range("A24:A27").ClearContents
 Range("C24:G27").ClearContents
 
   For i = Nc To 28 Step -1
        Cells(i, 1).EntireRow.Delete
    Next
 
Range("K13").Select
 
 End Sub
Si quelqu'un comprend et m'explique je lui serai infiniment reconnaissant.
tompom3108 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 11h34   #2
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 921
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 921
Points : 7 241
Points : 7 241
Bonjour,

Lance ton code debugage "pas à pas" et vérifie si toutes les conditions sont ok pour la suppression

Code :
1
2
3
For i = Nc To 28 Step -1
   Cells(i, 1).EntireRow.Delete
Next
Quelle est la valeur de i au démarrage de cette boucle?
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/01/2012, 11h41   #3
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 696
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 696
Points : 1 451
Points : 1 451
Bonjour,

Il faut que tu indiques la feuille concernée lorsque tu utilises Range.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Option Explicit
Public Sh As Worksheet
Public i As Integer, Num_Fact As String
Public np As Integer, Nc As Integer
Public Rnp As Range, Plag As Range
 '---------------------------------------------------------Créer un nouveau devis vierge
Sub Nouveau_Devis()
    Num_Fact = Worksheets("Feuil2").Range("C10").Value 'A ADAPTER
    Application.DisplayAlerts = False
    For Each Sh In ThisWorkbook.Worksheets
        If InStr(Sh.Name, "Détail") > 0 Then
            Sh.Delete
        End If
    Next Sh
    Worksheets("Devis").Protect userinterfaceonly:=True
    With Worksheets("Devis")
        Set Plag = .Range("A23:A150")
        For Each Rnp In Plag
            If Rnp.Value = "Pied" Then
                np = Rnp.Row
                Nc = np - 1
            End If
        Next
        .Range("F19").Value = "SDV-" & Year(Date) & "-" & Month(Date) & Day(Date) & "-" & Format(Num_Fact + 1, "0")
        .Range("L5").Value = Date
        .Range("A24:A27").ClearContents
        .Range("C24:G27").ClearContents
        For i = Nc To 28 Step -1
            Cells(i, 1).EntireRow.Delete
        Next
        .Range("K13").Select
    End With
End Sub
Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/01/2012, 11h57   #4
Nouveau Membre du Club
 
Inscription : octobre 2011
Messages : 106
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 106
Points : 38
Points : 38
ok merci pour vos réponses
j'ai changé "pied" par "pieddepage" dans le code et dans le classeur ça a suffit ...
tompom3108 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h06.


 
 
 
 
Partenaires

Hébergement Web