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 :

Erreur survenant sauf enregistement [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut Erreur survenant sauf enregistement
    Bonjour,

    Je me permets de vous contacter car j’ai remarqué un comportement bizarre dans une de mes feuilles Excel
    J’ai fait une macro VBA pour faire une copie de colonnes dans un onglet, il arrive que lors de cet ajout de colonnes j’obtienne l’erreur de dépassement du nombre de colonnes autorisés par XL2003. Cependant cette erreur peut arriver alors qu’il reste suffisamment de colonnes.
    Si je fais une sauvegarde avant ajout des colonnes par Workbooks.save ou manuellement je n’ai pas d’erreur.
    Comme cette sauvegarde sur mon portable DELL (2GHz 2GO ram, fichier Excel 2MO) demande plus de 13 secondes, je cherche un moyen d’éviter cette manip.
    Je met ci-dessous le message d’erreur et le code de la macro.
    D’avance merci de votre retour sur le sujet, peut être un moyen de mettre en évidence un comportement non répertorié.
    Cordialement
    Guillaume FAGOT
    Message d’erreur :
    Pour éviter la perte de données,Microsoft Office Excel ne peut pas déplacer de cellules non vides
    en dehors de la feuille.
    Essayer de localiser la dernièree cellule non vide en appuyant sur CTRL+FIN et supprimez ou effacez
    toutes les cellules situées entre la dernière cellule et la fin de vos données. Puis sélectionnez
    la cellule A1 et enregistrer votre classeur pour redéfinir la dernière cellule utilisée.
    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
     
     
    Sub NlleTypologie()
    '
    '  ajout d une nouvelle typologie dans le calcul du coût integration
    '
    Dim FeuillePlanning As Worksheet
    Dim fin_col_a_copier, deb_col_a_copier As Long
    Dim fin, deb, nouvelle_feuille, feuille_precedente As String
    Dim Numero_de_site_Precedent As Integer
    Dim TailleType As Integer
        TailleType = 25
        ' on utilise la derniere colonne générique pour creer un nouvelle typologie
        Set FeuillePlanning = Worksheets("Planning")
        Application.Calculation = xlCalculationManual
        fin_col_a_copier = FeuillePlanning.Range("FINCOL").Column
        deb_col_a_copier = FeuillePlanning.Range("DEBCOL").Column
        fin = NumCol2lettre(fin_col_a_copier)
        deb = NumCol2lettre(deb_col_a_copier)
     
        nouvelle_feuille = NumCol2lettre(deb_col_a_copier) ===>  macro qui permet de passer de mode lettres en mode chiffre.
        feuille_precedente = NumCol2lettre(deb_col_a_copier - TailleType )
        With FeuillePlanning
        ' On ne peut mettre en tout que 18 typologies de sites
        If Left(.Range(feuille_precedente & 2).Text, 12) = "Type de Site" Then
            Numero_de_site_Precedent = Right(.Range(feuille_precedente & 2).Text, 2)
            If Int(Numero_de_site_Precedent) > 17 Then GoTo Erreur_Grand_Nombre_de_Sites
        End If
        End With
     
        Columns(deb & ":" & fin).Select
       ' Columns(deb & ":" & deb).Activate
        ' on met a jour les colonnes
        Selection.Copy
        Columns(deb & ":" & deb).Activate
        Selection.Insert Shift:=xlToRight   ======> DECLENCHEMENT DE L’ERREUR SI EN MODE NON ENREGISTRE
    '    Selection.Group
        'Range("A1").Select
        Range(nouvelle_feuille & 2) = "Type de Site"
        If Left(Range(feuille_precedente & 2).Text, 12) = "Type de Site" Then
            Numero_de_site_Precedent = Right(Range(feuille_precedente & 2).Text, 2)
            Range(nouvelle_feuille & 2) = Range(nouvelle_feuille & 2) & " " & (Int(Numero_de_site_Precedent) + 1)
        Else: Range(nouvelle_feuille & 2) = "Type de Site 1"
        End If
       ActiveWorkbook.Save
    GoTo Fin_Fonction
    Erreur_Grand_Nombre_de_Sites:
      MsgBox "Attention, il n'est pas possible de rentrer plus de 18 sites"
      GoTo Fin_Fonction
    Fin_Fonction:
    Set FeuillePlanning = Nothing
    Exit Sub
    End Sub

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    Le probleme est deja repertorié avec sa solution
    http://support.microsoft.com/kb/305568/fr
    Tu dois avoir un ou plusieurs format appliqué a des lignes complètes (ce qu'il faut bien sur toujours éviter de faire :p)
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut
    Merci bien,
    Il va falloir que je scanne tout le site Microsoft pour avoir plus de noisettes dans les bajoues.

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

Discussions similaires

  1. récupérer les erreurs survenant dans ma dll en vba
    Par mkl238 dans le forum Débuter
    Réponses: 5
    Dernier message: 17/02/2011, 10h43
  2. Réponses: 1
    Dernier message: 29/11/2008, 10h01
  3. Réponses: 3
    Dernier message: 21/05/2007, 17h34
  4. erreur IDL:omg.org/CORBA/MARSHAL:1.0
    Par Pinggui dans le forum CORBA
    Réponses: 3
    Dernier message: 13/05/2002, 15h05
  5. [Kylix] Erreur objet
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h41

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