Résolu code vba pour informer que la cellule active n'est pas dans la colonne A

moupa

XLDnaute Junior
Bonjour le forum,

Mon service qualité ma donné un fichier à adapter et corriger pour faire une sauvegarde de ligne dans un autre onglet. Il y avait déjà un macro de faite que j'ai légèrement modifié, mais je cale pour rajouter un critère!
La macro est la suivante
VB:
Sub Archivage()
'
'Création PMO le 31/07/2019
'
vnom = ActiveCell.Value                                     'sélection de la cellule active pour déffinir le nom a archiver

If vnom = "" Then                                           'si le nom de la cellule est vide alors message ci-dessous
    'MsgBox "veuillez Sélectionner un Nom", vbOKOnly + vbExclamation, "Information"
    'Exit Sub
End If

For Each vcellule In [a1:a3000]                             'Sélection de dans la collone A
    If vcellule.Value = vnom Then vselection = vselection & vcellule.Address & "," 'de toutes les cellules ayant le même nom
Next
If Len(vselection) > 0 Then                                 'si la sélection est supérieure à 0 = vrai
    Range(Left(vselection, Len(vselection) - 1)).Font.Strikethrough = True
    Range(Left(vselection, Len(vselection) - 1)).EntireRow.Select           'sélection de la ligne entière
End If
Selection.Copy                                              'copie la sélection

Sheets("Archive PlanAction").Select                         'ouvre l'onglet
    ActiveSheet.Range("a3").End(xlDown).Offset(1, 0).Select 'sélectionne la dernière cellule vide de la colonne A
    Selection.PasteSpecial Paste:=xlPasteAll                'copie spéciale

Sheets("Plan Action en cours").Select                       'retour sur l'onglet principal
Selection.Delete                                            'supprime les lignes qui ont été sélectionés au début
ActiveSheet.Range("A4").Select                              'se repositionne sur la cellule A4

End Sub
Le critère que je voudrais rajouter, puisque la cellule active pourrais être dans une autre colonne que la colonne A
et donc mettre si la cellule active n'est pas dans la colonne A, cela ouvre une msgbox et j'ai tenté ceci:

VB:
If vnom <> Columns(1) Then                              'si le nom de la cellule n'est pas dans la colonne A
   MsgBox "veuillez Sélectionner une cellule en Colonne A", vbOKOnly + vbExclamation, "Information"
 
End If
mais bien sur cela ne fonctionne pas et j'ai une erreur 13!!

quelqu'un aurait une petite idée
par avance merci
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Mettez au début vnom = Intersect(ActiveCell.EntireRow, ActiveSheet.Columns("A")).Value
 

Discussions similaires


Haut Bas