VBA excel problème avec la cellule active

cs_chamelle Messages postés 4 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 14 mai 2004 - 13 mai 2004 à 16:18
cs_chamelle Messages postés 4 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 14 mai 2004 - 14 mai 2004 à 14:45
Bonjour,
je découvre le vba Excel et je dois réussir à faire fonctionner une macro existante...
Alors le problème est que l'on écrit dans une feuille excel qui contient déjà des informations mais si la cellule active n'est pas celle où je veux commencer le collage alors il me met une erreur de format incorrect pour collage

Il faudrait que je lui dise colle après la dernière ligne écrite pour qu'il ecrive à la suite du contenu de ma feuille.
voilà le programme :

Sub IMPAYES()
'
' IMPAYES Macro

'
ChDir "C:\Documents and Settings\pabil\Bureau"
Workbooks.OpenText Filename:= _
"C:\Documents and Settings\pabil\Bureau\IMPAYES.TXT", Origin:=xlWindows, _
StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 9), Array(98 _
, 1), Array(122, 9), Array(128, 1), Array(152, 1), Array(154, 1), Array(183, 9), Array(194, _
9), Array(205, 9), Array(210, 9), Array(214, 4), Array(220, 9), Array(226, 1), Array(228, 1 _
), Array(238, 1), Array(240, 1))
Range("I2").Select
ActiveCell.FormulaR1C1 = "=+RC[-2]+RC[-1]/100"
Range("I2").Select
Selection.NumberFormat = "#,##0.00"
Selection.Copy
Range("I3").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
Columns("I:I").Select
Application.CutCopyMode = False
Selection.Copy
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Columns("G:H").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Rows("1:1").Select
Selection.Delete Shift:=xlUp
Cells(1,1).Select
Selection.Copy
Windows("IMPAYESTEST1.xls").Activate
ActiveSheet.Paste
Feuil2.PrintOut
Windows("IMPAYES.txt").Activate
ActiveWorkbook.Close False
End Sub

lolotte la chamelle

5 réponses

HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
13 mai 2004 à 16:31
Bonjour,

pour avoir la dernière cellule vide (de la colonne A par exemple) :

Set celluleActive = Range("A1")

While Not IsEmpty(celluleActive)
set celluleActive = celluleActive.Offset(1,0)
Wend


Voilà, tu mets cette ligne là avec de vouloir copier et tu seras positionné à la dernière ligne vide

Fanny
0
cs_chamelle Messages postés 4 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 14 mai 2004
13 mai 2004 à 16:34
merci jessaye tout de suite...

lolotte la chamelle
0
cs_chamelle Messages postés 4 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 14 mai 2004
13 mai 2004 à 16:59
Bon ça écrit bien dans la première cellule vide après la cellule sélectonner, mais le problème c'est qu'il faut à ce moment là que a cellule sélectionner quand je rentre dans excel soit au dessus de ma première case vide.
Parce que là, il commence pas à chercher à la cellule (1,1) mais à partir de ma cellule active.
y a til une histoire de CurrentRegion?

lolotte la chamelle
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
14 mai 2004 à 08:51
Dans ce cas là, tu ajoutes après la boucle :
celluleActive.Offset(-1,0).Activate

Fanny
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_chamelle Messages postés 4 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 14 mai 2004
14 mai 2004 à 14:45
Merci beaucoup fanny
Tout ça marche bien maintenant.
Il me fallait bien deux jours pour réussir à me mettre dans le bain du VBA et capter un peu mieux le principe.

lolotte la chamelle
0