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 :

Problème avec .Delete xlUp [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 139
    Par défaut Problème avec .Delete xlUp
    Bonjour

    J'ai un souci avec mon code, merci de m'aiguiller

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Private Sub Worksheet_Change(ByVal Target As Range)
     
     
        Dim iLigFin3 As Integer
        Dim iLig3 As Integer
        Dim iEcr3 As Integer
     
     
        Application.ScreenUpdating = False
        Application.EnableEvents = False
        Application.Calculation = xlCalculationManual
        Application.DisplayStatusBar = False
     
     
        If Target.Count = 1 Then
            If Target.AddressLocal = "$B$1" Then
     
                iLigFin3 = Range("e" & Rows.Count).End(xlUp).Row
     
     
                If iLigFin3 >= 26 Then
                    Range("e26:o39" & iLigFin3).ClearContents
                End If
     
                iEcr3 = 26
                iLigFin3 = Sheets("Facturation_Détaillée").Range("A" & Rows.Count).End(xlUp).Row
     
     
                 For iLig3 = 2 To iLigFin
                    If Sheets("Facturation_Détaillée").Range("A" & iLig3).Value = Target.Value Then
                        Range("e" & iEcr3).Value = Sheets("Facturation_Détaillée").Range("at" & iLig3).Value
                        Range("j" & iEcr3).Value = Sheets("Facturation_Détaillée").Range("au" & iLig3).Value
                        Range("k" & iEcr3).Value = Sheets("Facturation_Détaillée").Range("av" & iLig3).Value
                        Range("n" & iEcr3).Value = Sheets("Facturation_Détaillée").Range("ar" & iLig3).Value
                        Range("o" & iEcr3).Value = Sheets("Facturation_Détaillée").Range("aw" & iLig3).Value
                        iEcr3 = iEcr3 + 1
                    End If
                Next iLig3
     
                Sheets("Facture").Range("e26:o39").SpecialCells(xlCellTypeBlanks).Delete xlUp
     
            End If
      End If
     
     
     
            Application.ScreenUpdating = True
            Application.EnableEvents = True
            Application.Calculation = xlCalculationAutomatic
            Application.DisplayStatusBar = True
     
     
    End Sub
    Mon soucis est que le contenu des cellules qui excède le range E26:O39 sont effacer

    Merci de votre aide

  2. #2
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Bonjour,

    Sans analyser ton code dans le détail, il y a un souci dans ce bloc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      If iLigFin3 >= 26 Then
                    Range("e26:o39" & iLigFin3).ClearContents
                End If
    Devrait plutôt être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      If iLigFin3 >= 26 Then
                    Range("e26:o" & iLigFin3).ClearContents
                End If

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 139
    Par défaut
    Merci mfoxy

    cela cause une erreur d'exécution

    " La méthode 'Range' de l'objet' Wooksheet' a échoué "

  4. #4
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Re,

    À vérifier dans ton code la valeur de ta variable dernière ligne

    Indiqué la parentalite de ton range

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Worksheets("Sheet1").Range("A1:G37").ClearContents

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 139
    Par défaut
    Merci mfoxy

    J'ai le même résultat à l'exécution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Worksheets("Facture").Range("e26:o39").ClearContents

  6. #6
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Re,

    Assez bizarre ton truc, la ligne de code fournie fonctionne bien chez moi.

    Tu es sur de ton nom de feuille ? (espace, Majuscule, ou autre ?)

    Si tu veux bien, exprime en français ce que tu aimerais que la macro fasse au juste, c'est bien souvent plus simple à comprendre que de "lire" un code sans explications.

    Avec printscreen, noms des feuilles,...

    L'utilisation de tableau structuré est aussi un grand plus.

    ( au pire tu peux aussi poster ton classeur anonymiser, certain membre les ouvrent, mais pas tous)

    Bat

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

Discussions similaires

  1. problème avec DELETE
    Par bebej dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 16/01/2013, 09h43
  2. Problème avec "DELETE"
    Par khalid3333 dans le forum SQL
    Réponses: 3
    Dernier message: 18/01/2011, 20h26
  3. [Débutant] Problème avec DELETE FROM
    Par gouakkamol dans le forum Langage SQL
    Réponses: 2
    Dernier message: 30/11/2007, 09h19
  4. [MySQL] Problème avec delete et recup variable
    Par bromlecornu dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/05/2007, 14h44
  5. [VB]problème avec DELETE
    Par jogu dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 07/01/2006, 10h53

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