Recherche et copie en vba

Le
man77 Hors ligne
Bonjour,Bonjour,
J'ai encore besoin d'aide Et oui les jours passent mais la connaissance ne suit pas
Voilà, j'ai mais un optionbutton dans ma colonne, ici en (I15). Je souhaite récupérer le num de la colonne donc 15, lui attribuer une autre colonne soit (c15), lire la cellule (c15), stocker cette valeur dans tiroir et effectuer une recherche et une copie
J'ai donc écris :
Private Sub OptionButton2_Click()
If OptionButton2.Value = True Then
actlign = ActiveCell.Row
Tiroir = ["c" & actlign]
With Worksheets("eone")
Set CelluleTrouvée = .Range("d4:d122").Find(What:=Tiroir, _
LookIn:=xlValues, LookAt:=xlWhole)
If CelluleTrouvée Is Nothing Then
MsgBox "pas trouvé"
Else
Ligne = CelluleTrouvée.Row
Col = CelluleTrouvée.Column + 1
toto = .Cells(Ligne, Col).Value
MsgBox ("trouvé : ligne = " & Ligne & " , colonne = " & Col)
End If
End With
Mais ça plante dans actlihn j'ai bien "15" mais dans tiroir rien et ça plante.
Merci de votre aide.
@++
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Géréginéflo
Le #23826121
Bonjour,

Ceci : tiroir = "c" & actlign
à la place de celà : Tiroir = ["c"& actlign]
et tiroir contiendra la valeur

Bonne journée

Le 05/10/2011 13:17, man77 a écrit :
Bonjour,Bonjour,
J'ai encore besoin d'aide... Et oui les jours passent mais la connaissance ne
suit pas...
Voilà, j'ai mais un optionbutton dans ma colonne, ici en (I15). Je souhaite
récupérer le num de la colonne donc 15, lui attribuer une autre colonne soit
(c15), lire la cellule (c15), stocker cette valeur dans tiroir et effectuer une
recherche et une copie...
J'ai donc écris :
Private Sub OptionButton2_Click()
If OptionButton2.Value = True Then
actlign = ActiveCell.Row
Tiroir = ["c"& actlign]
With Worksheets("eone")
Set CelluleTrouvée = .Range("d4:d122").Find(What:=Tiroir, _
LookIn:=xlValues, LookAt:=xlWhole)
If CelluleTrouvée Is Nothing Then
MsgBox "pas trouvé"
Else
Ligne = CelluleTrouvée.Row
Col = CelluleTrouvée.Column + 1
toto = .Cells(Ligne, Col).Value
MsgBox ("trouvé : ligne = "& Ligne& " , colonne = "& Col)
End If
End With
Mais ça plante... dans actlihn j'ai bien "15" mais dans tiroir ...rien et ça
plante.
Merci de votre aide.
@++
MichD
Le #23826191
Bonjour,

A )
Pour corriger cette erreur
Tiroir = ["c" & actlign]
Modifie comme ceci :
Tiroir = range("c" & actlign)

Quand tu utilises les [ ] , tu ne peux pas utiliser une variable à l'intérieur des crochets. Il te faudrait utiliser la
propriété "Evaluate" de l'objet "Application" comme ceci:
Tiroir = Application.Evaluate("A" & actilign)

Je te suggère de t'en tenir à Range(), c'est plus facile !

B ) Je souhaite récupérer le num de la colonne donc 15,
****Je suppose que c'est le nom de la ligne que tu veux récupérer ?
Si oui, pour récupérer la première ligne et la première colonne sur laquelle
repose le contrôle "CheckBox"
'---------------------------------
Private Sub CheckBox1_Click()
Dim A As String, B As String
A = Me.CheckBox1.TopLeftCell.Address
B = Me.CheckBox1.BottomRightCell.Address

'Adresse des cellules où se retrouvent le Checkbox
MsgBox Range(A, B).Address

MsgBox "La première ligne : " & Range(A, B)(1, 1).Row & vbCrLf & _
"la première colonne est : " & Range(A, B)(1, 1).Column

End Sub
'---------------------------------

MichD
------------------------------------------
"man77" a écrit dans le message de groupe de discussion :

Bonjour,Bonjour,
J'ai encore besoin d'aide... Et oui les jours passent mais la connaissance ne
suit pas...
Voilà, j'ai mais un optionbutton dans ma colonne, ici en (I15). Je souhaite
récupérer le num de la colonne donc 15, lui attribuer une autre colonne soit
(c15), lire la cellule (c15), stocker cette valeur dans tiroir et effectuer une
recherche et une copie...
J'ai donc écris :
Private Sub OptionButton2_Click()
If OptionButton2.Value = True Then
actlign = ActiveCell.Row
Tiroir = ["c" & actlign]
With Worksheets("eone")
Set CelluleTrouvée = .Range("d4:d122").Find(What:=Tiroir, _
LookIn:=xlValues, LookAt:=xlWhole)
If CelluleTrouvée Is Nothing Then
MsgBox "pas trouvé"
Else
Ligne = CelluleTrouvée.Row
Col = CelluleTrouvée.Column + 1
toto = .Cells(Ligne, Col).Value
MsgBox ("trouvé : ligne = " & Ligne & " , colonne = " & Col)
End If
End With
Mais ça plante... dans actlihn j'ai bien "15" mais dans tiroir ...rien et ça
plante.
Merci de votre aide.
@++
man77 Hors ligne
Le #23826451
MichD a écrit le 05/10/2011 à 15h06 :
Bonjour,

A )
Pour corriger cette erreur
Tiroir = ["c" & actlign]
Modifie comme ceci :
Tiroir = range("c" & actlign)

Quand tu utilises les [ ] , tu ne peux pas utiliser une variable à
l'intérieur des crochets. Il te faudrait utiliser la
propriété "Evaluate" de l'objet "Application"
comme ceci:
Tiroir = Application.Evaluate("A" & actilign)

Je te suggère de t'en tenir à Range(), c'est plus facile !

B ) Je souhaite récupérer le num de la colonne donc 15,
****Je suppose que c'est le nom de la ligne que tu veux récupérer
?
Si oui, pour récupérer la première ligne et la
première colonne sur laquelle
repose le contrôle "CheckBox"
'---------------------------------
Private Sub CheckBox1_Click()
Dim A As String, B As String
A = Me.CheckBox1.TopLeftCell.Address
B = Me.CheckBox1.BottomRightCell.Address

'Adresse des cellules où se retrouvent le Checkbox
MsgBox Range(A, B).Address

MsgBox "La première ligne : " & Range(A, B)(1, 1).Row
& vbCrLf & _
"la première colonne est : " & Range(A, B)(1, 1).Column

End Sub
'---------------------------------

MichD
------------------------------------------
"man77" a écrit dans le message de groupe de discussion :


Bonjour,Bonjour,
J'ai encore besoin d'aide... Et oui les jours passent mais la connaissance ne
suit pas...
Voilà, j'ai mais un optionbutton dans ma colonne, ici en (I15). Je
souhaite
récupérer le num de la colonne donc 15, lui attribuer une autre
colonne soit
(c15), lire la cellule (c15), stocker cette valeur dans tiroir et effectuer une
recherche et une copie...
J'ai donc écris :
Private Sub OptionButton2_Click()
If OptionButton2.Value = True Then
actlign = ActiveCell.Row
Tiroir = ["c" & actlign]
With Worksheets("eone")
Set CelluleTrouvée = .Range("d4:d122").Find(What:=Tiroir, _
LookIn:=xlValues, LookAt:=xlWhole)
If CelluleTrouvée Is Nothing Then
MsgBox "pas trouvé"
Else
Ligne = CelluleTrouvée.Row
Col = CelluleTrouvée.Column + 1
toto = .Cells(Ligne, Col).Value
MsgBox ("trouvé : ligne = " & Ligne & " , colonne
= " & Col)
End If
End With
Mais ça plante... dans actlihn j'ai bien "15" mais dans tiroir
...rien et ça
plante.
Merci de votre aide.
@++


Merci pout votre aide.
Ce que je voulais était bien :
Tiroir = Range("c" & actlign)

Merci et à bientôt pour de nouvelles aventures...
@+
Gloops
Le #23826691
man77 a écrit, le 05/10/2011 13:17 :
Tiroir = ["c"& actlign]



On peut aussi dire Cells(actlign, 3)

Dans certains cas c'est commode, le 3 peut être le résultat d'un calc ul.
Publicité
Poster une réponse
Anonyme