sélection multiple avec activecell

sélection multiple avec activecell - VB/VBA/VBS - Programmation

Marsh Posté le 13-09-2005 à 10:35:21    

salut,  
 
J'ai fait un ptit prog dans VBA qui copie des chiffre via l'ActiveCell et les place dans un autre fichier (est un stock en fait)
J'aimerai juste améliorer le truc..
Je voudrai sélectionner en plus de l'ActiveCell (-3 colonnes, -1 ligne) et même rajouter la date du jour !
voici le bout de code qu j'ai :
1 er Ficihier
_________________
Private Sub CommandButton1_Click()
If IsEmpty(ActiveCell.Value) Then
MsgBox "y'a rien"
Else
MsgBox ActiveCell.Value
ActiveCell.Copy
End If
Workbooks.Open Filename:="\\Fsgld\Galenic\Galenique\Stock\Principes actifs\DEBIO025\DEBIO025 test.xls"
End Sub
 
2eme Fichier
_____________
Private Sub Workbook_Open()
Range("G65536" ).End(xlUp).Select
ligne = Range("G65536" ).End(xlUp).Offset(1, 0)
ActiveCell.PasteSpecial (xlPasteAll)
End Sub
 
 
alors comment faire cette sélection multiple ?  
 
Thanks  :jap:

Reply

Marsh Posté le 13-09-2005 à 10:35:21   

Reply

Marsh Posté le 13-09-2005 à 11:26:21    

bonjour,
pas sûr d'avoir bien compris :

Code :
  1. Sub Test()
  2. iR = ActiveCell.Row
  3. iC = ActiveCell.Column
  4. Range(Cells(iR - 1, iC - 3), Cells(iR, iC)).Copy
  5. End Sub


C'est ça que tu cherches ?
A+

Reply

Marsh Posté le 13-09-2005 à 11:52:50    

Oui exact  
mais là c'est toutes les cellules entre activecell et les autres.
alors que moi je veux jute une seule cellule située (-3,-1)
Ex: active cell = D2 ben moi je veux copier la cellule A1
 
et pour la date ?

Reply

Marsh Posté le 13-09-2005 à 14:08:39    

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 :
  1. Private Sub CommandButton1_Click()
  2. If IsEmpty(ActiveCell.Value) Then
  3. MsgBox "y'a rien"
  4. Else
  5. Origine = ActiveWorkbook.Name
  6. Workbooks.Open Filename:="\\Fsgld\Galenic\Galenique\Stock\Principes actifs\DEBIO025\DEBIO025 test.xls"
  7. ligne = Range("G65536" ).End(xlUp).Row + 1
  8. Cible = ActiveWorkbook.Name
  9. 'Colonne cible
  10. iCol = ActiveCell.Column - 3
  11. 'Colonne pour mettre la date
  12. iDat = 1
  13. Workbooks(Origine).Activate
  14. ActiveCell.Copy Workbooks(Cible).Sheets(1).Cells(ligne, iCol + 3)
  15. ActiveCell.Offset(-1, -3).Copy Workbooks(Cible).Sheets(1).Cells(ligne, iCol)
  16. Workbooks(Cible).Sheets(1).Cells(ligne, iDat).Value = Date
  17. Workbooks(Cible).Close True
  18. End If
  19. End Sub


 
A+


Message édité par galopin01 le 13-09-2005 à 18:08:59

---------------
roger
Reply

Marsh Posté le 13-09-2005 à 17:00:19    

ok je me suis surement mal exprimé !!
je parlais de séléction multiple mais je ne vois pas d'autre terme...sorry!
je réexplique:
Je pars d'un fichier avec des tableaux de valeurs où j'aimerai sélectionner un chiffre (par activeCell: c tout ce que je connais) et aussi une cellule qui est le N°de référence (qui se trouve à -3 colonnes et -1 ligne du chiffre sélectionné). copier ces cellules dans un fichier ailleurs
La destination est le fichier DEBIO025 test.xls
Il doit y copier ce qui vient d'être sélectionné dans la  
dernière ligne vide d'une certaine colonne(G) pour le chiffre et (D)pour le N° de référence.
De là j'aimerai qu'il ajoute la date dans la colonne(A) une à la meme ligne qu'il vient de remplir.
 
je sais pas si c plus clair...
++

Reply

Marsh Posté le 13-09-2005 à 18:09:56    

bonsoir,
la macro précédente viens d'être modifiée en tenant compte de tes indications.
ça marche ?


---------------
roger
Reply

Marsh Posté le 14-09-2005 à 08:32:00    

Salut,  
ça fonctionne de temps en temps
Bien qui'il me colle sur (Debio025.xls) un peu partout mais pas à la dernière ligne vide
sinon
ça coince à la ligne 15...je ne sais pas pkoi!
 
merci de ton aide....

Reply

Marsh Posté le 14-09-2005 à 09:16:14    

Oups,
On efface et on recommence :

Code :
  1. Private Sub CommandButton1_Click()
  2. iR = ActiveCell.Row
  3. If IsEmpty(ActiveCell) Then
  4. MsgBox "y'a rien"
  5. Else
  6. Origine = ActiveWorkbook.Name
  7. Workbooks.Open Filename:="TonFichierEtChemin"
  8. iDest = Sheets(1).Range("G65536" ).End(xlUp).Row + 1
  9. Cible = ActiveWorkbook.Name
  10. Workbooks(Origine).Activate
  11. ActiveCell.Copy Workbooks(Cible).Sheets(1).Cells(iDest, 7)
  12. Cells(iR - 1, 4).Copy Workbooks(Cible).Sheets(1).Cells(iDest, 4)
  13. Workbooks(Cible).Sheets(1).Cells(iDest, 1).Value = Date
  14. Workbooks(Cible).Close True
  15. End If
  16. End Sub


 
Ne pas oublier de remplacer "TonFichierEtChemin" par la chaîne ad-hoc.
A+


---------------
roger
Reply

Marsh Posté le 15-09-2005 à 08:11:49    

alors là ça tourne comme comme une horloge.....
 
Merci beaucoup de ton aide....

Reply

Marsh Posté le 13-10-2005 à 16:03:11    

Merci pour ce topic, après 2h de recherche sans résultat, votre topic ma enfin permis de trouver ce que je cherché! MERCI BEAUCOUP!!!  ;)


---------------
Tout vient à point à qui sait se détendre
Reply

Marsh Posté le 13-10-2005 à 16:03:11   

Reply

Marsh Posté le 18-10-2005 à 09:48:34    

bha c fait pour ça le forum...
Dis tu arrive à copier coller encore dans excel car moi  je ne pèeux plus Crtl-C , Crtl-V

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed