sélection de cellule de façon dynamique

fred-bene

XLDnaute Occasionnel
Bonjour à toutes et tous.

J'ai une plage de cellule à copier qui se situe dans une autre feuille de nom connu dans le même classeur.
Le hic c'est de préciser à la souris la cellule début de la plage. Ce choix doit être fait manuellement à la souris et non automatiquement.

Voici le code à l'état actuel :

Sub Copie_Data()
'
' Copie_Data Macro
'

'
c = ActiveSheet.Name
Sheets("Mesures").Select


' ici mettre le fonction qui attend la sélection de cellule début'

a = ActiveCell.Row
b = ActiveCell.Column

Range(ActiveCell, Cells(a + 9, b)).Select
Selection.Copy

Worksheets(c).Activate

' ici mettre le fonction qui attend la sélection de cellule début de collage'

ActiveSheet.Paste



End Sub
 

JNP

XLDnaute Barbatruc
Re : sélection de cellule de façon dynamique

Bonjour Fred-Bene :),
Teste
Code:
Sub test()
Dim CelDébut As Range
Set CelDébut = Application.InputBox(prompt:="Sélection Début", Type:=8)
MsgBox CelDébut.Address
End Sub
ça devrait répondre à ton besoin :p...
Bonne suite :cool:
 

fred-bene

XLDnaute Occasionnel
Re : sélection de cellule de façon dynamique

J'en suis maintenant à copier coller mes valeurs ( taille connue et figée ) : le paste pose pb ....

Sub Copie_Data()
'
' Copie_Data Macro
'
Dim CelDebut As Range
'
c = ActiveSheet.Name
Sheets("Mesures").Select


Set CelDebut = Application.InputBox(prompt:="Sélection Début", Type:=8)

Range(CelDebut.Address).Activate

a = ActiveCell.Row
b = ActiveCell.Column

Range(ActiveCell, Cells(a + 9, b)).Select
Selection.Copy

Worksheets(c).Activate


Set CelDebut = Application.InputBox(prompt:="Sélection Début", Type:=8)

Range(CelDebut.Address).Select
a = ActiveCell.Row
b = ActiveCell.Column

ActiveSheet.Paste Destination:=Worksheets(c).Range(ActiveCell, Cells(a + 9, b))
Application.CutCopyMode = False

End Sub
 

JNP

XLDnaute Barbatruc
Re : sélection de cellule de façon dynamique

Re :),
La logique serait de déterminer ta plage de début et ta plage de collage et d'utiliser directement Copy :rolleyes:...
Et le mieux serait de n'utiliser aucun ActiveCell, c'est à ça que servent les variables :p...
Enfin, Resize peut te permettre de redimensionner la plage, sans passer par des a et des b :eek:...
Bon courage :cool:
 

JNP

XLDnaute Barbatruc
Re : sélection de cellule de façon dynamique

Re :),
Ce que je veux dire, c'est que ton code devrait ressembler à ça :rolleyes:
Code:
Sub Copie_Data()
' Copie_Data Macro
Dim CelDebut As Range, CelCollage As Range, C As String
C = ActiveSheet.Name
Sheets("Mesures").Select
Set CelDebut = Application.InputBox(prompt:="Sélection Début", Type:=8)
Sheets(C).Select
Set CelCollage = Application.InputBox(prompt:="Sélection collage", Type:=8)
CelDebut.Resize(9).Copy CelCollage
End Sub
Bonne suite :cool:
 

JNP

XLDnaute Barbatruc
Re : sélection de cellule de façon dynamique

Re :),
Avec les Active, pas toujours évident de savoir où on en est :rolleyes:...
Code:
ActiveSheet.Paste Destination:=Worksheets(c).Range(ActiveCell, Cells(a + 9, b))
Si c'est dans ActiveSheet que tu colles, pourquoi dans destination Worksheets(c) ?
ActiveCell se réfère à quelle cellule active ?
Code:
ActiveSheet.Range(Cells(a, b), Cells(a + 9, b)).Paste
Paraîtrait plus juste, mais sans fichier, difficile d'analyser :p...
 

fred-bene

XLDnaute Occasionnel
Re : sélection de cellule de façon dynamique

Re, :)

Je pige pas tout sur vba car en faisant très rarement.
En fait au début on calculait en vba mais pour des calculs matheux. Comme c'est trop limité on est passé sous scilab.
Donc depuis, je n'en fait plus et suis un peu paumé à chaque rechute.

Merci pour ton aide.

:cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 500
Messages
2 089 010
Membres
104 004
dernier inscrit
mista