IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Petit probleme de boucle [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de Nicolas JACQUIN
    Homme Profil pro
    .
    Inscrit en
    Avril 2014
    Messages
    556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : .
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2014
    Messages : 556
    Par défaut Petit probleme de boucle
    Bonsoir les amis, j'ai fait une boucle avec "for i = 3 to 150" qui fonctionnait très bien, et j'ai voulu essayé de d'accélérer la procédure avec ce code:
    mais à la ligne "for i = 3 to derlig" j'ai une imcompatibilité de type 13

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Sub suprime_ligne_acceuil()
    Dim dep As String
    Dim nom As String
    Dim i As Integer
    Dim derlig As String
     
    derlig = Range("O" & Range("O65536").End(xlUp).Row)
    For i = 3 To derlig
    dep = Range("Y" & i).Text
    nom = Range("Q" & i).Text
     
    If Range("Y" & i).Value > "" And Range("X" & i).Interior.Color = RGB(255, 0, 0) Then 'couleur cellule
     
    Range("O" & i).Select
    Rep = MsgBox("Devis de" & " " & nom & " " & "est" & " " & dep & Chr(10) & "Souhaitez-vous supprimer la ligne enregistrée ?", vbYesNo + vbQuestion + vbDefaultButton2, "Etat des devis")
             If Rep = vbYes Then
        Rep = MsgBox("Etes vous vraiment sûr de vouloir supprimer la ligne enregistrée ?", vbYesNo + vbQuestion + vbDefaultButton2, "Confirmation suppression")
                If Rep = vbYes Then
    ActiveCell.Offset.ClearContents
    ActiveCell.Offset(0, 1).ClearContents
    ActiveCell.Offset(0, 2).ClearContents
    ActiveCell.Offset(0, 3).ClearContents
    ActiveCell.Offset(0, 4).ClearContents
    ActiveCell.Offset(0, 5).ClearContents
    ActiveCell.Offset(0, 6).ClearContents
    ActiveCell.Offset(0, 7).ClearContents
    ActiveCell.Offset(0, 8).ClearContents
    ActiveCell.Offset(0, 10).ClearContents
            End If
         End If
    End If
    Next i
    Call actualiser
    End Sub
    je vous remercie d'avance pour l'aide apportée

  2. #2
    Membre émérite
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Par défaut
    Bonjour,
    mauvaise déclaration il faut un integer

  3. #3
    Membre émérite Avatar de Nicolas JACQUIN
    Homme Profil pro
    .
    Inscrit en
    Avril 2014
    Messages
    556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : .
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2014
    Messages : 556
    Par défaut
    Bonjour et merci de votre réponse j'ai déjà essayé aussi mais même code d'erreur mais la ligne du dessus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    derlig = Range("O" & Range("O65536").End(xlUp).Row)

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    derlig = Range("O65536").End(xlUp).Row
    Mais déclare-la As Long. Les fichiers font souvent plus de 65000 ligne, et de toute façon en interne excel converti les Integer en Long donc aucun gain.
    eric

  5. #5
    Membre émérite Avatar de Nicolas JACQUIN
    Homme Profil pro
    .
    Inscrit en
    Avril 2014
    Messages
    556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : .
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2014
    Messages : 556
    Par défaut
    merci beaucoup ca marche, bonne soirée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Petit probleme sur boucle FOR
    Par Spurius dans le forum VBA Access
    Réponses: 4
    Dernier message: 07/04/2010, 15h59
  2. [AC-2007] Petit probleme sur boucle FOR
    Par Spurius dans le forum VBA Access
    Réponses: 1
    Dernier message: 02/04/2010, 12h04
  3. petit probleme de boucle
    Par shaku dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/11/2008, 18h13
  4. Petit Probleme boucle "for"
    Par ImplicitNone dans le forum Débuter
    Réponses: 2
    Dernier message: 29/02/2008, 04h38
  5. petit probleme dans une requte POSTGRE SQL
    Par ghis le fou dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/09/2003, 14h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo