Copier,coller, supprimer un bouton

djnimo

XLDnaute Nouveau
Bonsoir, J'ai essaye d'adapter une macro trouve sur ce forum a mon fichier, mais J'ai une simple erreur de syntaxe dont je ne vois pas la cause, quelqu'un voit mon erreur?
Le deboguer me dit Endif sans bloc IF en pointant sur le dernier ENDIF et si je le supprime, Jobtiens une erreur d'execution 1004, la methode rande de l'objet '_worksheet' a echoue... :-( jene comprends pas d'ou ca vient...... Merci

Private Sub CommandButton1_Click()

If Selection.Cells.Count <> 256 Then MsgBox ("Sélectionner une ligne complète ... Merci") Else
If MsgBox("Deplacer?", vbOKCancel, "Attention Deplacement") = vbOK Then
Dim f As Worksheet 'déclare la variable f
Dim dest As Range 'déclare la variable dest
Set f = Sheets("aaa") 'définit la variable f
'définit la variable dest
If f.Range([A1]) = "" Then 'condition : si A1 est vide
Set dest = f.Range([A1]) 'dest = A1
Else 'sinon
Set dest = f.Range([A65536]).End(xlUp).Offset(1, 0) 'dest = première cellule vide de la colonne A
End If 'fin condition
ActiveCell.EntireRow.Cut Destination:=dest 'coupe et copie la ligne de la cellule active
Selection.Delete Shift:=xlUp 'supprime la ligne que l'on vient de copier
Else
End If
End If
End Sub
 

Pièces jointes

  • copiecollersuppr.zip
    22.1 KB · Affichages: 40

bqtr

XLDnaute Accro
Re : Copier,coller, supprimer un bouton

Re,

Je n'ai pas d'erreur après les modifs.
Si tu souhaites conserver les [], il faut écrire comme ceci:

Code:
Private Sub CommandButton1_Click()
If Selection.Cells.Count <> 256 Then MsgBox ("Sélectionner une ligne complète ... Merci") Else
If MsgBox("Deplacer?", vbOKCancel, "Attention Deplacement") = vbOK Then
    Dim f As Worksheet 'déclare la variable f
    Dim dest As Range 'déclare la variable dest
    Set f = Sheets("aaa") 'définit la variable f
    'définit la variable dest
        If f.[A1] = "" Then 'condition : si A1 est vide
        Set dest = f.[A1] 'dest = A1
        Else 'sinon
        Set dest = f.[A65536].End(xlUp).Offset(1, 0) 'dest = première cellule vide de la colonne A
        End If 'fin condition
ActiveCell.EntireRow.Cut Destination:=dest 'coupe et copie la ligne de la cellule active
Selection.Delete Shift:=xlUp 'supprime la ligne que l'on vient de copier
Else
End If
End Sub

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 488
Messages
2 088 836
Membres
103 972
dernier inscrit
steeter