IF avec Variable

Bonjour,

Débutant en VBA, je bloque depuis plusieurs heures sur un point qui paraîtra sans doute facile aux plus aguerris.

Ma boucle fonctionne, le copier coller également, le problème vient de ma variable B.

Voyez-vous une incohérence dans l'extrait de code ci-dessous?

Merci par avance,

Sub detection()

b = ActiveCell.Offset(0, 17)

Feuil2.Select

Cells(7, 1).Select

Do

If b = "TABLE ANNULEE" Then

Range(ActiveCell, ActiveCell.Offset(0, 25)).Select

Selection.Copy

Feuil15.Select

LastRowFeuil15 = Range("C100000").End(xlUp).Row + 1

Cells(LastRowFeuil15, 1).PasteSpecial Paste:=xlPasteValues

Feuil2.Select

End If

ActiveCell.Offset(1, 0).Select

a = ActiveCell.Offset(-1, 0)

Loop Until a = ""

Exit Sub

bonjour,

Pas étonnant que tu y aie déjà passé un moment.

Moi en tout cas je me sens incapable de répondre à ça sans le classeur KIVABIEN avec :

A+

Bonjour,

Effectivement ceci n'est pas très clair!

Ci-joint un extrait de fichier illustrant mon problème: A l'éxécution du module 1 je souhaiterais que si la colonne R de l'onglet IMPORT est égale à "TABLE ANNULEE" la ligne soit copiée dans l'onglet RESTIT. Le problème que j'ai actuellement est que même si la condition est remplie rien ne se passe. Il ne détecte pas mon critère en colonne R.

Edit: Le fichier est en pièce jointe

7test-2.xlsm (476.35 Ko)

Merci par avance de votre aide,

Salut Romain,

Saut Galopin,

  • pour insérer un code dans ton message, utilise la balise <\> dans la barre d'outil supérieure ;
  • pour insérer un fichier (< 1 Mo), utilise le bouton vert "Ajouter des fichiers" en-dessous de la fenêtre du message.

Sans cela et des explications CLAIRES et complètes, difficile de t'aider efficacement.

A+

J'ai updaté le message avec mon fichier.

Merci par avance,

Salut Romain,

  • supprimé ton Module1 ;
  • créé une liste de validation dès que tu cliques en colonne [R] qui te propose "-" ou "TABLE ANNULEE" ;
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'
If Not Intersect(Target, Range("R7:R" & Range("R" & Rows.Count).End(xlUp).Row)) Is Nothing Then
    Range("R:R").Validation.Delete
    Target.Validation.Add Type:=xlValidateList, Formula1:="-,TABLE ANNULEE"
End If
'
End Sub

- choisir "TABLE ANNULEE" copie la ligne en 'Annulations' et l'efface de 'Import', comme demandé.

Private Sub Worksheet_Change(ByVal Target As Range)
'
Application.EnableEvents = False
'
If Not Intersect(Target, Range("R7:R" & Range("R" & Rows.Count).End(xlUp).Row)) Is Nothing Then
    If Target = "TABLE ANNULEE" Then
        With Worksheets("Annulations")
            iRowT = .Range("A" & Rows.Count).End(xlUp).Row + 1
            .Rows(iRowT).Value = Rows(Target.Row).Value
        End With
        Rows(Target.Row).Delete shift:=xlUp
    End If
End If
'
Application.EnableEvents = True
'
End Sub

A+

1romain.xlsm (484.19 Ko)
Rechercher des sujets similaires à "variable"