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

Access Discussion :

Problème lors du Relancement de la base


Sujet :

Access

  1. #1
    Provisoirement toléré
    Inscrit en
    Septembre 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 147
    Points : 62
    Points
    62
    Par défaut Problème lors du Relancement de la base
    Je possède le code suivant pour une macro :

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    Function Macro1()
    '
    ' Macro1 Macro
    ' Macro enregistrée le 20/10/2005 par pommbe01
    '
        Dim appXl As Excel.Application
        Set appXl = CreateObject("Excel.Application")
     
     
     
        'Pour ne pas avoir d'avertissement si le fichier est déjà créé
        appXl.DisplayAlerts = False
     
        'Affiche (True) ou pas (False) la fenêtre Excel
        appXl.Visible = False
     
        appXl.AskToUpdateLinks = False
        appXl.Workbooks.Open Filename:="C:\Documents and Settings\pommbe01\Bureau\IMP"
     
     
        Dim c As Variant, compte As Integer
     
        compte = 0
        '
        appXl.Range("A1:B1").Select
        appXl.Selection.Font.Bold = True
        appXl.Columns("A:A").EntireColumn.AutoFit
        appXl.Columns("B:B").EntireColumn.AutoFit
     
        appXl.Range("A2").CurrentRegion.Select
        appXl.Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
                       OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
     
        For Each c In Range("A2", appXl.Range("A2").End(xlDown).Address)
            c.Select
     
            'faire le calcul
            If c.Offset(-1, 0) = c Then
                compte = c.Offset(-1, 1) + c.Offset(0, 1)
                c.Offset(0, 3) = compte
            Else
                c.Offset(0, 3) = c.Offset(0, 1)
                compte = 0
            End If
        Next
     
        'nettoyer les résultats superflus
        For Each c In Range("A2", Range("A2").End(xlDown).Address)
            If c.Offset(1, 0) = c Then
                c.Offset(0, 3) = ""
            End If
        Next
     
        'effacer les lignes
        appXl.Range("A2").End(xlDown).Select
    go:
        If appXl.Selection.Address <> "$A$2" Then
            If appXl.Selection.Offset(-1, 0) = appXl.Selection Then
                appXl.Selection.Offset(-1, 0).EntireRow.Delete
            End If
            appXl.Selection.Offset(-1, 0).Select
            GoTo go
        End If
     
        appXl.Range("B1").Select
        appXl.Selection.Copy
        appXl.Range("D1").Select
        appXl.ActiveSheet.Paste
        appXl.Columns("B:B").Select
        appXl.Application.CutCopyMode = False
        appXl.Selection.Delete Shift:=xlToLeft
        appXl.Columns("C:C").Select
        appXl.Selection.Cut
        appXl.Columns("B:B").Select
        appXl.ActiveSheet.Paste
     
        appXl.ActiveWorkbook.Save
        appXl.ActiveWindow.Close
     
        Set appXl = Nothing
     
    End Function
    Cette Macro fonctionne sauf lorsque je la relance j'ai un pb au niveau de la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      appXl.Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
                       OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    Le message d'erreur est le suivant : variable objet non definit

    Comment je peux resoudre ce probleme.

    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Ça doit être ton .Selection qui n'est pas défini bien que :

    appXl.Range("A2").CurrentRegion.Select

    devrait faire cela.

    Fait ta macro en Excel et voit ce que Excel génère comme VBA. Ça devrait te permettre de trouver ce qui ne va pas.

    A+

  3. #3
    Provisoirement toléré
    Inscrit en
    Septembre 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    J'ai essayé sur Excel et ca fonctionne sans aucun probleme.

    Je peux relancer la Macro autant de fois que je le désire ce qui n'ai pas le cas sur Access.

Discussions similaires

  1. Problème lors d'un import de base 10g vers 11g
    Par Loïck dans le forum Oracle
    Réponses: 0
    Dernier message: 30/01/2013, 09h42
  2. Problème lors d'une interrogation de base de donnée
    Par Milie24 dans le forum EDI/Outils
    Réponses: 8
    Dernier message: 04/02/2010, 16h50
  3. Réponses: 9
    Dernier message: 15/03/2007, 16h17
  4. problème lors du démarrage de la base de donnée
    Par fouad77fr dans le forum Oracle
    Réponses: 5
    Dernier message: 06/02/2007, 16h56
  5. Problème Lors d'un copie de base
    Par 79Charles dans le forum Administration
    Réponses: 17
    Dernier message: 19/08/2004, 15h13

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