test conditionnel

n0str0m0

XLDnaute Nouveau
Bonsoir,
J'ai un soucis pour faire un test sur une cellule qui 1 contient une formule et qui peut etre modifié a la main par du texte

Je me permet de vous soumettre le code (pardon au puriste mais je debute :) )

Code:
Private Sub Facturation_Click()
' Extraction des devis a facturer
' Effacement des donnees
Sheets("Facturation").Activate
ActiveWorkbook.ActiveSheet.UsedRange.Select
Selection.Delete
'Selection de la feuille Suivi Commande
Sheets("Suivi Commande").Activate

' Initialisation des variables
Dim derniere, compteur, i, j, NumLigne, Mois, Mois_M, cptligne
' Determination de la valeur de la derniere ligne
derniere = Application.WorksheetFunction.CountA(ActiveSheet.Range("$J:$J")) + 1
' Debut de la ligne
NumLigne = 3
' Initialisation du compteur
compteur = 0
cptligne = 0
' Sélection du mois choisi
Mois = Me.ComboBox1.Value
    Select Case Mois
        Case "janvier"
            Mois_M = 1
        Case "février"
            Mois_M = 2
        Case "mars"
            Mois_M = 3
        Case "avril"
            Mois_M = 4
        Case "mai"
            Mois_M = 5
        Case "juin"
            Mois_M = 6
        Case "juillet"
            Mois_M = 7
        Case "août"
            Mois_M = 8
        Case "septembre"
            Mois_M = 9
        Case "octobre"
            Mois_M = 10
        Case "novembre"
            Mois_M = 11
        Case "décembre"
            Mois_M = 12
    End Select
' boucle de selection des lignes
    For i = NumLigne To derniere
        If Sheets("Suivi Commande").Cells(i, 1) <> "" Then
            If Sheets("Suivi Commande").Cells(i, 20) <> "En Attente" Then Else
            MsgBox "" & i & Cells(i, 20)
                If Sheets("Suivi Commande").Cells(i, 20).HasFormula Then GoTo Num Else
               If Sheets("Suivi Commande").Cells(i, 20) = Mois Then GoTo Suite Else
Num:                    If Month(Sheets("Suivi Commande").Cells(i, 20)) = Mois_M Or Sheets("Suivi Commande").Cells(i, 21) = "Non Facturé" Then
Suite:                  Sheets("Suivi Commande").Cells(i, 1).EntireRow.Copy
                        compteur = compteur + 1
                        Sheets("Facturation").Rows(compteur).PasteSpecial
                        j = i + 1
                        Do While IsEmpty(Sheets("Suivi Commande").Cells(j, 2)) And j <> derniere
                        Sheets("Suivi Commande").Cells(j, 1).EntireRow.Copy
                        compteur = compteur + 1
                        Sheets("Facturation").Rows(compteur).PasteSpecial
                        j = j + 1
                        Loop
                        cptligne = cptligne + 1
                    End If
               End If
            
        Next i
MsgBox "Nb de devis à facturer pour " & Mois & " est de " & cptligne, vbOKOnly, "Extraction pour la facturation"
Sheets("facturation").Visible = True
Sheets("facturation").Activate
End Sub


Je bloque sur le test de savoir si la cellule contient une formule alors copie et si elle contient le texte copie !
cela se recoupe et me genere des erreurs

J'attends avec impatiente vos lumieres
N0str0m0
 

Cousinhub

XLDnaute Barbatruc
Re : test conditionnel

Bonsoir,
juste en regardant ton code, et donc sans savoir à quoi il pourrait bien servir, cette ligne m'interpelle :

Code:
If Sheets("Suivi Commande").Cells(i, 20) <> "En Attente" Then Else

If ..... Then ..... Else : le tout sur une ligne, sans attendre le résultat de la condition....


pour que cela soit plus compréhensible, il serait peut-être mieux de joindre un fichier exemple....
 

n0str0m0

XLDnaute Nouveau
Re : test conditionnel

En fait le probleme se pose surtout sur le "hasformula" et le "month" ou je n'arrive pas a faire eviter la cellule qui ne contient pas de date par le if month ....

Pour ta remarque bhbh je vais corriger de ce pas
;)

N0str0m0
 

Cousinhub

XLDnaute Barbatruc
Re : test conditionnel

Re-,
tu fais un select case, avec un comme option

Code:
Mois = Me.ComboBox1.Value
:

et ensuite, en fonction de la valeur, tu lui détermines une variable :


Code:
Mois_M

Puis, tu réutilises Mois, pourquoi ne pas utiliser Mois_M?

Code:
If Sheets("Suivi Commande").Cells(i, 20) = [COLOR="Red"]Mois[/COLOR]

Mais, sans voir la finalité, en aveugle.....:eek:
 

n0str0m0

XLDnaute Nouveau
Re : test conditionnel

bhbh,

Je ne peux pas te donner le fichier pour des raisons de confidentialités mais l'idée est la suivante :
j'ai mes cellules de la colonne J qui peuvent contenir soit une formule soit une date (mise a la main)
je veux copier les lignes dans une autre feuille si elles sont du mois choisi !

et en fait je n'arrive pas a m'en dépêtrer

N0str0m0
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 206
Messages
2 086 204
Membres
103 157
dernier inscrit
youma