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 :

Impossible de copier des valeur dans des cellules avec RANGE (excel redemarre tout le temps)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2019
    Messages : 2
    Par défaut Impossible de copier des valeur dans des cellules avec RANGE (excel redemarre tout le temps)
    Bonjour je viens vers vous car j'ai un probleme avec une macro vba. Pour faire simple j'ai crée une macro pour comparée de colone de string dans 2 feuilles differentes afin de creer une 3 eme string contenue le resultat de cette comparaison. Pour ce faire je stock toute mes données dans un tableau a 3 dimension je fais les comparaison que j'ai a faire et tout est bon. Mon probleme est le suivant : je n'arrive pas a copier les valeur de mon tableau donc juste la 3eme colones dans une feuille excel. Excel bug et redemarre a chaque fois que je lance la macro. Au bout de quelque seconde les donnée s'affiche dans les cellules mais le logiciel redemarre quelque seconde apres. Voila mon 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
    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
    Function MULTIPLEVLOOKUP(lookupval, lookuprange As Range, indexcol As Long)
    Dim lastLine As Integer, i As Integer
     
    Application.ScreenUpdating = False
     
    'derniere ligne de la base'
    lastLine = 9999
     
    Dim tab_bd() As String
    ReDim tab_bd(lastLine, 2)
     
    For i = 0 To lastLine
        tab_bd(i, 0) = Range("A" & i + 2)
        tab_bd(i, 1) = Sheets("TORXX").Range("B" & i + 2)
    Next
     
    Dim j As Integer
    j = 2
     
    For j = 2 To 4600
        For i = 1 To lastLine
            If tab_bd(j, 0) = tab_bd(i, 1) Then
                If Trim(tab_bd(j - 2, 2) & vbNullString) = vbNullString Then
                    'MsgBox Sheets("TORXX").Range("A" & i + 2) & ", "
                    tab_bd(j - 2, 2) = Sheets("TORXX").Range("A" & i + 2) & ", "
                Else
                    tab_bd(j - 2, 2) = tab_bd(j - 2, 2) & Sheets("TORXX").Range("A" & i + 2)
                End If
            End If
        Next
    Next
     
    Dim s As Integer
    s = 0
     
    ---------------------------------------------
    For i = 3 To 30                                                                             zone en pointillé est je pense la partie qui bug. Merci beaucoup
    Range("B" & i + 1) = tab_bd(s, 2)
    s = s + 1
    Next
     
    ---------------------------------------------
    Application.ScreenUpdating = True
     
    End Function
    Merci beaucoup

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Je ne sais pas si c'est la source de ton problème mais, perso, je n'aurais jamais écris Range("B" & i + 1) = tab_bd(s, 2) dans une Function.
    Une fonction sert à renvoyer une valeur, elle n'est pas supposée réaliser une action comme mettre des valeurs dans des cellules.
    Pour faire ça, j'aurais plutôt fait un Sub.

Discussions similaires

  1. [AC-2010] Dans une table, copier une valeur dans les cellules vides suivantes
    Par stsym dans le forum VBA Access
    Réponses: 4
    Dernier message: 15/12/2016, 21h09
  2. [XL-2003] copier des cellules avec contenant des formules
    Par laurentSc dans le forum Conception
    Réponses: 13
    Dernier message: 17/11/2015, 23h14
  3. Réponses: 2
    Dernier message: 23/03/2014, 12h05
  4. Copier une valeur dans la cellule au-dessus si vide
    Par ThSPB dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/02/2011, 14h52
  5. [XL-2003] impossible de copier des cellules , plus de croix noire
    Par deuval dans le forum Excel
    Réponses: 2
    Dernier message: 07/04/2009, 13h50

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