B
bertgrav
Guest
bonjour,
dans un logiciel autre qu'Excel je viens copier des données,
à l'aide d'une macro, je viens faire un COLLER dans une feuille, où s'effectuent des calculs etc...etc...
la macro fonctionne trés bien
excepté que je voudrais si je n'ai pas fait le COPIER avoir un message
du type Msgbox ('vous n'avez pas fait un COPIER avant !'
actuellement j'ai un message qui me renvoie vers la MACRO pour déboguer.
j'ai essayé de mettre en début et fin ces données:
Application.DisplayAlerts = False
Application.DisplayAlerts = True
c'est bien mais je ne suis pas averti qu'il y a eu une erreur
n'existe t il pas une donnée du style ON ERROR GOTO...
puis afficher un message et aller à la fin
VOICI LA MACRO DANS SON INTEGRALITE;
Sub ajouter()
Dim I As Integer, X As Integer
Dim Quoi As String, Qui As String
LIGNETOTAL1 = Feuil1.Range('F65535').End(xlUp).Row
Range('A' & Mid(ActiveSheet.UsedRange.Address, InStrRev(ActiveSheet.UsedRange.Address, '$') + 1)).Offset(1, 0).Select
ActiveSheet.Paste
MON PROBLEME DE MACRO EST ICI SI LE COPIER N'A PAS ETE FAIT AVANT: je voudrais afficher un message et aller à la fin ensuite
ActiveCell.EntireRow.Delete
fin = Feuil1.Range('F65535').End(xlUp).Row
réponse = MsgBox('avez-vous copié ce que vous demandiez ?', 292, 'question')
If réponse = vbYes Then
For I = fin To 2 Step -1
Quoi = UCase(Feuil1.Range('F' & I).Value)
For X = I - 1 To 2 Step -1
Qui = UCase(Feuil1.Range('F' & X).Value)
If Quoi = Qui Then
Rows(X & ':' & X).Select
Selection.Delete Shift:=xlDown
End If
Next
Next
LIGNETOTAL2 = Feuil1.Range('F65535').End(xlUp).Row
MsgBox ('Nombre avant : ' & LIGNETOTAL1 - 1 & vbNewLine & vbNewLine & 'Nombre aprés extraction BO : ' & LIGNETOTAL2 - 1 & vbNewLine & vbNewLine & 'Nombre lignes ajoutées à la liste : ' & LIGNETOTAL2 - LIGNETOTAL1)
Else
Selection.EntireRow.Delete
MsgBox ('le collage a été annulé, reprenez les opérations depuis le début')
End If
End Sub
amicalement
chantal
dans un logiciel autre qu'Excel je viens copier des données,
à l'aide d'une macro, je viens faire un COLLER dans une feuille, où s'effectuent des calculs etc...etc...
la macro fonctionne trés bien
excepté que je voudrais si je n'ai pas fait le COPIER avoir un message
du type Msgbox ('vous n'avez pas fait un COPIER avant !'
actuellement j'ai un message qui me renvoie vers la MACRO pour déboguer.
j'ai essayé de mettre en début et fin ces données:
Application.DisplayAlerts = False
Application.DisplayAlerts = True
c'est bien mais je ne suis pas averti qu'il y a eu une erreur
n'existe t il pas une donnée du style ON ERROR GOTO...
puis afficher un message et aller à la fin
VOICI LA MACRO DANS SON INTEGRALITE;
Sub ajouter()
Dim I As Integer, X As Integer
Dim Quoi As String, Qui As String
LIGNETOTAL1 = Feuil1.Range('F65535').End(xlUp).Row
Range('A' & Mid(ActiveSheet.UsedRange.Address, InStrRev(ActiveSheet.UsedRange.Address, '$') + 1)).Offset(1, 0).Select
ActiveSheet.Paste
MON PROBLEME DE MACRO EST ICI SI LE COPIER N'A PAS ETE FAIT AVANT: je voudrais afficher un message et aller à la fin ensuite
ActiveCell.EntireRow.Delete
fin = Feuil1.Range('F65535').End(xlUp).Row
réponse = MsgBox('avez-vous copié ce que vous demandiez ?', 292, 'question')
If réponse = vbYes Then
For I = fin To 2 Step -1
Quoi = UCase(Feuil1.Range('F' & I).Value)
For X = I - 1 To 2 Step -1
Qui = UCase(Feuil1.Range('F' & X).Value)
If Quoi = Qui Then
Rows(X & ':' & X).Select
Selection.Delete Shift:=xlDown
End If
Next
Next
LIGNETOTAL2 = Feuil1.Range('F65535').End(xlUp).Row
MsgBox ('Nombre avant : ' & LIGNETOTAL1 - 1 & vbNewLine & vbNewLine & 'Nombre aprés extraction BO : ' & LIGNETOTAL2 - 1 & vbNewLine & vbNewLine & 'Nombre lignes ajoutées à la liste : ' & LIGNETOTAL2 - LIGNETOTAL1)
Else
Selection.EntireRow.Delete
MsgBox ('le collage a été annulé, reprenez les opérations depuis le début')
End If
End Sub
amicalement
chantal