Afficher un message
Vieux 23/10/2006, 11h23   #3 (permalink)
Robert
XLDnaute Barbatruc
 
Avatar de Robert
 
Date d'inscription: février 2005
Localisation: Sète
Version Excel : Excel 2003 (PC)
Messages: 2 891
Par défaut Re : debutant: coller dans premiere cellule vide

Bonjour werjkslfs, Sergio, bonjour le forum,

La réponse de Sergio étant excellente je me permets d'intervenir juste pour t'expliquer l'erreur dans la ligne de ton code.

Range("A1").End(xlDown).Offset(0,1).Select signifie :
- tu pars de A1
- Tu sélectionnes la première cellule éditée (comme la colonne est vide cela t'envoie jusqu'en A65536).
- Tu demandes à excel de sélectionner la cellule inférieure. Soit A65537 et là ça plante puisque tu dépasses la limite imposée par le logiciel.

C'est pour cela que Sergio a préféré faire le contraire. Partir de A65536 et remonter à la première cellule éditié puis redescendre d'une. L'inconvénient de cette méthode et que, si la colonne A est vide la première valeur est toujours placée en A2 et non pas en A1... Il est vrai que souvent A1 contient une étiquette (une désignation) mais au pire tu peux résoudre avec une boucle If... Then.

Pour terminer, le code de Sergio ne copie que la valeur inscrite en C1. Si il te faut copier aussi le format je te propose le code suivant :

Code:
Sub Macro1()
Dim dest As Range 'déclare la variable dest
'définit la variable dest
With Sheets("Feuil2")
    If .Range("A1").Value = "" Then 'A1 si A1 est vide
        Set dest = .Range("A1")
    Else 'sinon la première cellule vide de la colonne A
        Set dest = .Range("A65536").End(xlUp).Offset(1, 0)
    End If
End With
'copie et colle la cellule C1 dans la colonne A de l'onglet "Feuil2"
Sheets("Feuil1").Range("C1").Copy Destination:=dest
End Sub
__________________
À plus

Robert
Robert est déconnecté   Réponse avec citation