Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/09/2011, 17h45   #1
Invité régulier
 
Inscription : mai 2004
Messages : 61
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 61
Points : 7
Points : 7
Par défaut Remettre à zéro les données d'une variable tableau

Bonjour à tous,

Je me permets de faire appel à vous une nouvelle fois parce que je trouve pas l'erreur dans la macro que j'utilise...

J'utilise un tableau pour stocker des données que je vais par la suite copier dans un autre classeur.
Le problème, c'est que le tableau ne reprends pas à la ligne n°1 après avoir copié des données (sauf si j'ai atteins le maxi de ligne possible dans le tableau).

Merci d'avance pour votre aide !
Alfred

Code :
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
Dim Tableau(1 To 10, 1 To 2)
Dim I As Integer
 
 
Sub Worksheet_change(ByVal Target As Range)
 
    'On déclare la variable ligneModif
    Dim ligneModif As Long
 
    'Si on modifie une cellule de la colonne 'C' (N° 3)
    If Target.Column = 3 Then
 
        'On récupère le numéro de ligne de la cellule modifiée
        ligneModif = Target.Row
 
        I = I + 1
 
        'Si il y a plus de 10 cellules de remplies
        If I > 5 Then
 
            If MsgBox("La limite du tableau a été atteinte, écraser les valeurs les plus anciennes ?", vbYesNo) = vbYes Then
                I = 1
            Else
                Exit Sub
            End If
 
        End If
 
        'On met les données de la ligne modifiée dans le tableau
        Tableau(I, 1) = Range("A" & ligneModif).Value
        Tableau(I, 2) = Range("C" & ligneModif).Value
 
        I = I + 1
 
    End If
 
End Sub
 
Sub BoutonClic()
 
Dim I As Integer
 
'On ouvre le fichier dans lequel on veut coller les données copiées
Workbooks.Open ThisWorkbook.Path & "\Fichier1.xls"
 
'On restitue les données dans la feuille excel
For I = 1 To UBound(Tableau, 1)
 
    With Sheets("Feuil1").UsedRange: NoDeLaDernLig = .Cells(.Rows.Count, .Columns.Count).Row: End With
 
    Sheets("Feuil1").Cells(NoDeLaDernLig + 1, 4).Value = Tableau(I, 1)
    Sheets("Feuil1").Cells(NoDeLaDernLig + 1, 2).Value = Tableau(I, 2)
 
    I = I + 1
 
Next I
 
Erase Tableau()
 
 
End Sub
Alfred23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2011, 17h55   #2
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 899
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 899
Points : 7 185
Points : 7 185
Bonjour,

Citation:
que je trouve pas l'erreur dans la macro que j'utilise
Quelle est l'erreur? (son numero et descriptif)

Si tu pouvais nous donner aussi la ligne (place un point d'arret et avance en pas à pas avec F8)
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2011, 19h40   #3
Membre Expert
 
Femme
Ingénieur développement logiciels
Inscription : juin 2007
Messages : 480
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Ain (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : juin 2007
Messages : 480
Points : 1 024
Points : 1 024
Bonjour,
Et en faisant après le ?
tedo01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h54.


 
 
 
 
Partenaires

Hébergement Web