Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

probleme macro

2 réponses
Avatar
Bastien
Bonjour,
J'ai un petit probleme avec ma macro... en premier lieu
j'execute cette macro

Public MaFeuille As Object
__________________________________

Private Sub toto()
Set MaFeuille = ActiveSheet
Set Target = ActiveCell
Set ints = Application.Intersect(Target, Range("A1:IV65536"))
Dim AnyString, MyStr
AnyString = ActiveCell.Text
MyStr = Left(AnyString, 3)
If MyStr = "M.O" Then
MsgBox "VOUS N'AVEZ PAS SELECTIONNER LA BONNE CELLULE SVP RECOMMENCER",
vbInformation
Else
If Not ints Is Nothing Then
On Error Resume Next
addr = Sheets("Items").Cells.Find(What:=[Target], After:=ActiveCell,
LookIn:=xlFormulas, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Address
If Not addr = Empty Then
Application.Goto Sheets("Items").Range(addr)
Else
MsgBox "Cette Valeur Existe Pas"
End If
End If
End If
End Sub
__________________________________
si je suis sur A1 et que A1 = "Rouge" et bien cette macro recherche le mot
"Rouge" dans ma feuille "Item". Cette macro fonctionne super bien.


ensuite j'execute cette macro qui ma ete envoyer par AnonymousA
__________________________________
Dim AnyString, MyStr
AnyString = ActiveCell.Text
MyStr = Left(AnyString, 3)
If MyStr = "M.O" Then
MsgBox "VOUS N'AVEZ PAS SELECTIONNER LA BONNE CELLULE SVP
RECOMMENCER", vbInformation
Else
Range(ActiveCell, ActiveCell.Offset(1, 0)).EntireRow.Copy

tamp = ActiveCell.Address
With MaFeuille
.Range(tamp).PasteSpecial
Range(ActiveCell.Offset(0, 6), ActiveCell.Offset(1, 6)).Copy
.Activate
.Range(tamp).Offset(0, 6).Select
.Paste Link:=True
End With
Application.CutCopyMode = False

End If
_________________________________

cette macro prend la cellule ou je suis + elle en dessous et la recolle dans
la meme feuille que j'etait au par-avant.
mais le probleme c'est qu'il la recolle sa sur la meme plage. exemple j'ai
choisi "Bleu" qui est en A3 alors il va aller dans premiere feuille et va
recolller "Bleu" en A3.
ce que je veux c'est qu'il recolle "Bleu" la ou j'etait avant ma premier
macro et non sur la meme plage que ma feuille item !
c'est juste le coller qui ce fait pas a bonne place ... il faut que les
autre condition reste les meme.

merci de votre aide.

2 réponses

Avatar
anonymousA
re,

devrait faire ce que tu demandes. En ai profité pour silmplifier ton code
mais tu fais ce que tu veux si tu penses que ca ne te correspond pas.La sub
tata réalisée à la suite de la sub toto fera ce que tu demandes. si tu
n'exécutespas au moins 1 fois toto avant tata, il y aura un problème de
définition des variables publiques.Pour le reste, je n'ai pas bien copmpris
l'interet du If Left(ActiveCell.Text, 3) = "M.O" dans la procédure tata.
M'enfin, c'est toi qui vois !

Public MaFeuille As Worksheet
Public cellsource As Range
Private Sub toto()

Set MaFeuille = ActiveSheet
Set cellsource = ActiveCell

If Left(cellsource.Text, 3) = "M.O" Then
MsgBox "VOUS N'AVEZ PAS SELECTIONNE LA BONNE CELLULE SVP, RECOMMENCEZ",
vbInformation
Else
On Error Resume Next
Application.Goto Sheets("Items").Cells.Find(What:Îllsource.Value,
LookAt:=xlWhole)
If Err.Number <> 0 Then MsgBox "Cette Valeur Existe Pas"
End If

End Sub

Sub tata()

If Left(ActiveCell.Text, 3) = "M.O" Then
MsgBox "VOUS N'AVEZ PAS SELECTIONNE LA BONNE CELLULE SVP, RECOMMENCEZ ",
vbInformation
Else
Range(ActiveCell, ActiveCell.Offset(1, 0)).EntireRow.Copy

tamp = cellsource.Address
With MaFeuille
.Range(tamp).PasteSpecial
Range(ActiveCell.Offset(0, 6), ActiveCell.Offset(1, 6)).Copy
.Activate
.Range(tamp).Offset(0, 6).Select
.Paste Link:=True
End With
Application.CutCopyMode = False

End If

End Sub

A+


Bonjour,
J'ai un petit probleme avec ma macro... en premier lieu
j'execute cette macro

Public MaFeuille As Object
__________________________________

Private Sub toto()
Set MaFeuille = ActiveSheet
Set Target = ActiveCell
Set ints = Application.Intersect(Target, Range("A1:IV65536"))
Dim AnyString, MyStr
AnyString = ActiveCell.Text
MyStr = Left(AnyString, 3)
If MyStr = "M.O" Then
MsgBox "VOUS N'AVEZ PAS SELECTIONNER LA BONNE CELLULE SVP RECOMMENCER",
vbInformation
Else
If Not ints Is Nothing Then
On Error Resume Next
addr = Sheets("Items").Cells.Find(What:=[Target], After:¬tiveCell,
LookIn:=xlFormulas, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:úlse _
, SearchFormat:úlse).Address
If Not addr = Empty Then
Application.Goto Sheets("Items").Range(addr)
Else
MsgBox "Cette Valeur Existe Pas"
End If
End If
End If
End Sub
__________________________________
si je suis sur A1 et que A1 = "Rouge" et bien cette macro recherche le mot
"Rouge" dans ma feuille "Item". Cette macro fonctionne super bien.


ensuite j'execute cette macro qui ma ete envoyer par AnonymousA
__________________________________
Dim AnyString, MyStr
AnyString = ActiveCell.Text
MyStr = Left(AnyString, 3)
If MyStr = "M.O" Then
MsgBox "VOUS N'AVEZ PAS SELECTIONNER LA BONNE CELLULE SVP
RECOMMENCER", vbInformation
Else
Range(ActiveCell, ActiveCell.Offset(1, 0)).EntireRow.Copy

tamp = ActiveCell.Address
With MaFeuille
.Range(tamp).PasteSpecial
Range(ActiveCell.Offset(0, 6), ActiveCell.Offset(1, 6)).Copy
.Activate
.Range(tamp).Offset(0, 6).Select
.Paste Link:=True
End With
Application.CutCopyMode = False

End If
_________________________________

cette macro prend la cellule ou je suis + elle en dessous et la recolle dans
la meme feuille que j'etait au par-avant.
mais le probleme c'est qu'il la recolle sa sur la meme plage. exemple j'ai
choisi "Bleu" qui est en A3 alors il va aller dans premiere feuille et va
recolller "Bleu" en A3.
ce que je veux c'est qu'il recolle "Bleu" la ou j'etait avant ma premier
macro et non sur la meme plage que ma feuille item !
c'est juste le coller qui ce fait pas a bonne place ... il faut que les
autre condition reste les meme.

merci de votre aide.





Avatar
Bastien
SUPER !
exactement ce que je cherchais
merci beaucoup d'avoir prit le temps de me repondre
et pour le code simplifier et bien sa fait la meme job !
j'en est peut-etre mit un peu trop :( je suis débutant....

merci encord :)
alp

"anonymousA" a écrit dans le message
de news:
re,

devrait faire ce que tu demandes. En ai profité pour silmplifier ton code
mais tu fais ce que tu veux si tu penses que ca ne te correspond pas.La
sub
tata réalisée à la suite de la sub toto fera ce que tu demandes. si tu
n'exécutespas au moins 1 fois toto avant tata, il y aura un problème de
définition des variables publiques.Pour le reste, je n'ai pas bien
copmpris
l'interet du If Left(ActiveCell.Text, 3) = "M.O" dans la procédure tata.
M'enfin, c'est toi qui vois !

Public MaFeuille As Worksheet
Public cellsource As Range
Private Sub toto()

Set MaFeuille = ActiveSheet
Set cellsource = ActiveCell

If Left(cellsource.Text, 3) = "M.O" Then
MsgBox "VOUS N'AVEZ PAS SELECTIONNE LA BONNE CELLULE SVP, RECOMMENCEZ",
vbInformation
Else
On Error Resume Next
Application.Goto Sheets("Items").Cells.Find(What:Îllsource.Value,
LookAt:=xlWhole)
If Err.Number <> 0 Then MsgBox "Cette Valeur Existe Pas"
End If

End Sub

Sub tata()

If Left(ActiveCell.Text, 3) = "M.O" Then
MsgBox "VOUS N'AVEZ PAS SELECTIONNE LA BONNE CELLULE SVP, RECOMMENCEZ
",
vbInformation
Else
Range(ActiveCell, ActiveCell.Offset(1, 0)).EntireRow.Copy

tamp = cellsource.Address
With MaFeuille
.Range(tamp).PasteSpecial
Range(ActiveCell.Offset(0, 6), ActiveCell.Offset(1, 6)).Copy
.Activate
.Range(tamp).Offset(0, 6).Select
.Paste Link:=True
End With
Application.CutCopyMode = False

End If

End Sub

A+


Bonjour,
J'ai un petit probleme avec ma macro... en premier lieu
j'execute cette macro

Public MaFeuille As Object
__________________________________

Private Sub toto()
Set MaFeuille = ActiveSheet
Set Target = ActiveCell
Set ints = Application.Intersect(Target, Range("A1:IV65536"))
Dim AnyString, MyStr
AnyString = ActiveCell.Text
MyStr = Left(AnyString, 3)
If MyStr = "M.O" Then
MsgBox "VOUS N'AVEZ PAS SELECTIONNER LA BONNE CELLULE SVP RECOMMENCER",
vbInformation
Else
If Not ints Is Nothing Then
On Error Resume Next
addr = Sheets("Items").Cells.Find(What:=[Target], After:¬tiveCell,
LookIn:=xlFormulas, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:úlse
_
, SearchFormat:úlse).Address
If Not addr = Empty Then
Application.Goto Sheets("Items").Range(addr)
Else
MsgBox "Cette Valeur Existe Pas"
End If
End If
End If
End Sub
__________________________________
si je suis sur A1 et que A1 = "Rouge" et bien cette macro recherche le
mot
"Rouge" dans ma feuille "Item". Cette macro fonctionne super bien.


ensuite j'execute cette macro qui ma ete envoyer par AnonymousA
__________________________________
Dim AnyString, MyStr
AnyString = ActiveCell.Text
MyStr = Left(AnyString, 3)
If MyStr = "M.O" Then
MsgBox "VOUS N'AVEZ PAS SELECTIONNER LA BONNE CELLULE SVP
RECOMMENCER", vbInformation
Else
Range(ActiveCell, ActiveCell.Offset(1, 0)).EntireRow.Copy

tamp = ActiveCell.Address
With MaFeuille
.Range(tamp).PasteSpecial
Range(ActiveCell.Offset(0, 6), ActiveCell.Offset(1, 6)).Copy
.Activate
.Range(tamp).Offset(0, 6).Select
.Paste Link:=True
End With
Application.CutCopyMode = False

End If
_________________________________

cette macro prend la cellule ou je suis + elle en dessous et la recolle
dans
la meme feuille que j'etait au par-avant.
mais le probleme c'est qu'il la recolle sa sur la meme plage. exemple
j'ai
choisi "Bleu" qui est en A3 alors il va aller dans premiere feuille et va
recolller "Bleu" en A3.
ce que je veux c'est qu'il recolle "Bleu" la ou j'etait avant ma premier
macro et non sur la meme plage que ma feuille item !
c'est juste le coller qui ce fait pas a bonne place ... il faut que les
autre condition reste les meme.

merci de votre aide.