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/10/2011, 10h16   #1
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 134
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 134
Points : 29
Points : 29
Par défaut Variable ne se vide pas

Bonjour à tous et toutes

Voici mon code

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub CommandButton1_Click()
If ListBox1.ListIndex = -1 Then Exit Sub
Dim matertransfert As String
matertransfert = ListBox1.List(ListBox1.ListIndex)
Workbooks("NovoMaterBAse.xls").Close SaveChanges:=False
ActiveWindow.WindowState = xlMaximized
Unload UserForm1
Dim LaDerniere As String
LaDerniere = Range("B4:B65536").Find(N, lookat:=xlWhole).Row
Dim LaCase As String
LaCase = "B" & LaDerniere + 1
LaDerniere = Empty
Worksheets("Novomaterbase").Range(LaCase) = matertransfert
Mon souci est lorsque je reclique sur le bouton pour refaire la manip, ce que je copie du "NovoMaterBase" se repositionne au même endroit de la feuille redevene active

Je pense pourtant ré-initialiser la variable "LaDerniere" sur l'avant dernière ligne et refaire une recherche de la première ligne disponible dans la colonne B

Merci pour vos lumières

Daniel
familledacp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 10h28   #2
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Bonjour

Si j’ai bien compris LaDerniere est la dernière ligne

Alors
Code :
1
2
Dim LaDerniere as long
LaDerniere  = Range("B65536").End(xlUp).Row
Et pas besoin de
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 10h40   #3
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 134
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 134
Points : 29
Points : 29
Jean Pierre

C'est parfait, cela fonctionne !

Mille mercis

daniel
familledacp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 10h48   #4
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Je vois que tu es sur 2007

alors et suite à une remarque judicieuse de Jérôme

Pour plus de 65536 lignes
Code :
Range("B" & Rows.Count).End(xlUp).Row
Bon courage
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h15.


 
 
 
 
Partenaires

Hébergement Web