bonjour,
l'énoncé est incompréhensible et/ou incomplet :
Si tu ne veux copier qu'une cellule pourquoi vouloir faire une sélection multiple ?
Utilise :
ActiveCell.Offset(-1,-3).Copy Destination
Pour la date :
range(Destination)= Date
Le problème est que tu ne dis rien sur la destination
En tout cas le collage n'a rien à voir avec un quelconque :
Private Sub Workbook_Open()
Tu peux virer cette macro sinon à chaque fois que tu vas ouvrir le classeur, VBA va essayer de te vider le contenu du presse papier dedans.
ça va te faire une belle déchetterie !
Il faut donc que tu définisses la destination à partir du classeur de départ, sous une forme qui ressemble peu ou prou à la macro suivante :
Code :
- Private Sub CommandButton1_Click()
- If IsEmpty(ActiveCell.Value) Then
- MsgBox "y'a rien"
- Else
- Origine = ActiveWorkbook.Name
- Workbooks.Open Filename:="\\Fsgld\Galenic\Galenique\Stock\Principes actifs\DEBIO025\DEBIO025 test.xls"
- ligne = Range("G65536" ).End(xlUp).Row + 1
- Cible = ActiveWorkbook.Name
- 'Colonne cible
- iCol = ActiveCell.Column - 3
- 'Colonne pour mettre la date
- iDat = 1
- Workbooks(Origine).Activate
- ActiveCell.Copy Workbooks(Cible).Sheets(1).Cells(ligne, iCol + 3)
- ActiveCell.Offset(-1, -3).Copy Workbooks(Cible).Sheets(1).Cells(ligne, iCol)
- Workbooks(Cible).Sheets(1).Cells(ligne, iDat).Value = Date
- Workbooks(Cible).Close True
- End If
- End Sub
|
A+
Message édité par galopin01 le 13-09-2005 à 18:08:59
---------------
roger