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 xlDown


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 58
    Par défaut Problème avec xlDown
    Bonjour!

    J'ai fait un petit code pour tester quelque chose, mais j'ai un message d'erreur qui dit: "Invalid outside procedure" et me surligne xlDown.

    Voilà le code:

    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
    Dim tableau() As Byte
    DerniereLigne = Range("A1").End(xlDown).Row
    ReDim tableau(DerniereLigne)
    Dim l As Byte
     
    Sub AFFECTE()
     Call LECTURE
     Call ECRITURE
    End Sub
     
    Sub LECTURE()
     tableau(l) = Cells(l, 1).Value
    End Sub
     
    Sub ECRITURE()
     Cells(l, 2).Value = tableau(l)
    End Sub
    Merci de votre aide!

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    Citation Envoyé par xanto
    Dim tableau() As Byte
    DerniereLigne = Range("A1").End(xlDown).Row
    ReDim tableau(DerniereLigne)
    Dim l As Byte

    Sub AFFECTE()
    Call LECTURE
    Call ECRITURE
    End Sub
    ton erreur est là. cette ligne est une instruction, elle n'a rien a faire dans la section déclaration de variable.elle doit forcément se trouver a l'interieur d'une procedure. ici tu dois trouver
    public dernierligne as integer

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 147
    Par défaut
    Il a peut être oublié un end sub à la fin car je vois mal les déclarations se faire dans le vide.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    pourtant si,
    tu dois faire la plupart de tes déclarations dans le vide, en tete de tes procédure, et principalement celles qui sont publique, il n'y en a que quelques une que tu fais a l'interieur d'une sub, qui ont une portée limitée, ou les redim

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 58
    Par défaut
    Alors comment faire pour initialiser cette variable?

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    tu l'initie au début de ta procédure, c'est a dire, tu déclare qu'elle existe, et quelle est son type, et tu lui donne une valeur dans les sub. si tu l'a déclaré en public, sa valeur reste d'une sub a l'autre
    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
     
    Dim tableau() 
    Public i As Integer
    Public derniereligne As Integer
     
    Sub AFFECTE()
    derniereligne = Range("A1").End(xlDown).Row
    ReDim tableau(derniereligne)
    Call LECTURE
    Call ECRITURE
    End Sub
    
    Sub LECTURE()
    For i = 1 To derniereligne
    tableau(i) = Cells(i, 1).Value
    Next i
    End Sub
     
    Sub ECRITURE()
    For i = 1 To derniereligne
    Cells(i, 2).Value = tableau(i)
    Next i
    End Sub
    a plus


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

Discussions similaires

  1. Pilotage d'Excel avec VB.NET : problème paramètre xlDown
    Par Paenitentia dans le forum Windows Forms
    Réponses: 4
    Dernier message: 09/12/2009, 15h03
  2. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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