Autres Probléme avec For next

JBARBE

XLDnaute Barbatruc
Bonjour à tous,
toujours moi avec mon compte bancaire que j'avais créé avec for M = 1 to 19 next (je me fait vieux )
1704442975041.png
 

JBARBE

XLDnaute Barbatruc
bonjour Job75
J'ai encore un bug avec for j=3 to 21
le next j
je m'en sort pas avec cette macro complexe merci à l'avance :
Sub Prelevement()
Dim Réponse As String
Dim nombre As Variant
Application.ScreenUpdating = False
'Sheets("Tableau_de_bord").Select
Sheets("Prelevement").Select
Dim j As Long
For j = 3 To 21
If Sheets("prelevement").Cells(j, 3).Value <> "" Then
If Sheets("prelevement").Cells(j, 3) <= Date Then Sheets("SG").Range("Date") = Sheets("prelevement").Cells(j, 3)

'Cells(j, 6).Select
If Cells(j, 3).Value = "" Then
Cells(j + 1, 3).Select
Else
MsgBox "A Payer LE PRELEVEMENT" & " " & Cells(j, 9).Value
Réponse = MsgBox(prompt:=" le montant est de " & Sheets("prelevement").Cells(j, 9), Buttons:=vbYesNo + vbDefaultButton2)
If Réponse = vbYes Then
nombre = InputBox(prompt:="Veuillez indiquer le montant ")
If Not IsNumeric(nombre) Then
MsgBox "Vous devez entrez un nombre!"
'Exit Sub
End If
End If
If StrPtr(nombre) = 0 Then
MsgBox "Vous avez annuler la saisie"
Exit Sub
End If
Sheets("prelevement").Cells(j, 9).NumberFormat = "$#,##0.00_);[Red]($#,##0.00)"
'End If
'End If
If Sheets("prelevement").Cells(j, 10) <> "" Then
MsgBox "Payer LE DEPOT" & "" & Sheets("prelevement").Cells(j, 10).Value
Réponse = MsgBox(prompt:=" le montant est de " & Sheets("prelevement").Cells(j, 10), Buttons:=vbYesNo + vbDefaultButton2)
If Réponse = vbYes Then
nombre = InputBox(prompt:="Veuillez indiquer le montant ")
End If
End If
If Not IsNumeric(nombre) Then
MsgBox "Vous devez entrez un nombre!"
'Exit Sub
End If
If StrPtr(nombre) = 0 Then
MsgBox "Vous avez annuler la saisie"
Exit Sub
End If
'ActiveCell.Offset(0, 7).Value = nombre
Sheets("SG").Range("Date").Value = Sheets("prelevement").Cells(j, 3)
Sheets("SG").Range("Tiers").Value = Sheets("prelevement").Cells(j, 5)
Sheets("SG").Range("Paiement1").Value = Sheets("prelevement").Cells(j, 9)
Sheets("SG").Range("Dépot").Value = Sheets("prelevement").Cells(j, 10)
Sheets("SG").Cells(j, 6).NumberFormat = "$#,##0.00_);[Red]($#,##0.00)"
Sheets("SG").Cells(j, 7).NumberFormat = "#,##0.00€;[Red]-#,##0.00€"
Sheets("prelevement").Cells(j, 3).NumberFormat = "dd/mm/yy"
If Sheets("SG").text = "DATE" Then
Cells(j, 1) = Sheets("SG").text = "DATE"
Sheets("prelevement").Cells(j, 1) = Sheets("SG").text = "Tiers"
End If
If Sheets("SG").Range("Tiers") = "Tiers" Then
Sheets("prelevement").Cells(j, 3) = Sheets("SG").text = "Tiers"
End If
If Sheets("SG").Range("Paiement1") Then
Sheets("prelevement").Cells(j, 6) = Sheets("SG").text = "Paiement1"
End If
If Sheets("SG").Range("Dépot") Then
Sheets("prelevement").Cells(j, 7) = Sheets("SG").text = "Dépot"
End If
End If
Next j >ça bug
End Sub
 

patricktoulon

XLDnaute Barbatruc
Bonjour
il y a certainement des incohérences avec l'intention dans ce code
par exemple ici
VB:
If Sheets("prelevement").Cells(j, 10) <> "" Then
                    MsgBox "Payer LE DEPOT" & "" & Sheets("prelevement").Cells(j, 10).Value
                    Réponse = MsgBox(prompt:=" le montant est de " & Sheets("prelevement").Cells(j, 10), Buttons:=vbYesNo + vbDefaultButton2)
                    If Réponse = vbYes Then
                        nombre = InputBox(prompt:="Veuillez indiquer le montant ")
                    End If
                End If
                If Not IsNumeric(nombre) Then
                    MsgBox "Vous devez entrez un nombre!"
                    'Exit Sub
                End If
                If StrPtr(nombre) = 0 Then
                    MsgBox "Vous avez annuler la saisie"
                    Exit Sub
                End If
que se passe t il selon toi si ce n'est pas numérique ce qui est tapé dans l'input
ben le code continue
donc juste avant tu met un msgbox vbok simple d'avertissement a la limite si tu n'est pas épileptique ca peut passer
ensuite tu renvoie un nouveau msgbox cette fois ci en responsif
et si tu repond oui le imputbox s'affiche pour taper la somme
si tu te trompe tu fait rien

ca fait un peu ratatouille ton code là
perso entre nous j'aurais mis simplement un inputbox avec le message des msgbox
si tu anule tu continue
si tu te trompe tu rappelle
si c'est bon ca continue
le tout en un seul truc
 

job75

XLDnaute Barbatruc
J'ai bien regardé le code du post #6 et le seul endroit où il y a incohérence c'est en lignes 10 et 11.

Il faut remplacer :
VB:
If Cells(j, 3).Value = "" Then
Cells(j + 1, 3).Select
par :
VB:
If Cells(j, 3).Value = "" Then
Cells(j + 1, 3).Select
End If
ou plus simplement par :
VB:
If Cells(j, 3).Value = "" Then Cells(j + 1, 3).Select
Bien entendu à la fin retirer > ça bug à droite de Next j.
 

JBARBE

XLDnaute Barbatruc
fichier modifier !
merci à tous,
j'ai pu trouver aprés une longue recherche reste à acheminer cela dans des cellules vides aprés next j dans sheets("SG")

Option Explicit

Sub Prelevement()
Dim Réponse As String
Application.ScreenUpdating = False
Sheets("Tableau_de_bord").Select
Sheets("Prelevement").Select
Dim j As Long
For j = 3 To 21
Sheets("SG").Range("Zone_saisie").ClearContents
If Sheets("prelevement").Cells(j, 3) <> "" Then
MsgBox "A Payer LE PRELEVEMENT" & " " & Sheets("prelevement").Cells(j, 9)
Réponse = MsgBox(prompt:=" le montant est de " & Sheets("prelevement").Cells(j, 9), Buttons:=vbYesNo + vbDefaultButton2)
End If
If Réponse = vbYes Then
Sheets("SG").Range("Date") = Sheets("prelevement").Cells(j, 3)
Sheets("SG").Range("Tiers") = Sheets("prelevement").Cells(j, 5)
Sheets("SG").Cells(j, 6).NumberFormat = "$#,##0.00_);[Red]($#,##0.00)"
Sheets("SG").Cells(j, 7).NumberFormat = "#,##0.00€;[Red]-#,##0.00€"
Sheets("SG").Range("Paiement1") = Sheets("prelevement").Cells(j, 9)
Sheets("prelevement").Cells(j, 9).NumberFormat = "$#,##0.00_);[Red]($#,##0.00)"
Sheets("SG").Range("Dépot") = Sheets("prelevement").Cells(j, 10)
Sheets("prelevement").Cells(j, 10).NumberFormat = "$#,##0.00_);[Red]($#,##0.00)"
Sheets("SG").Cells(j, 6).NumberFormat = "$#,##0.00_);[Red]($#,##0.00)"
Sheets("SG").Cells(j, 7).NumberFormat = "#,##0.00€;[Red]-#,##0.00€"
Sheets("prelevement").Cells(j, 3).NumberFormat = "dd/mm/yy"
'Sheets("SG").Range("Dépot").Value = Sheets("prelevement").Cells(j, 9)
ElseIf Réponse = vbNo Then
Sheets("prelevement").Cells(j, 9).Select
End If
If Réponse = vbNo Then
Cells(j, 3).Select
End If
'If Sheets("SG").Range("Dépot") = "" Then
'Cells(j + 1, 3).Select
'End If
If Sheets("prelevement").Cells(j, 3) <> "" Then
Réponse = MsgBox(prompt:=" le VERSEMENT est de " & Sheets("prelevement").Cells(j, 10), Buttons:=vbYesNo + vbDefaultButton2)
If Réponse = vbNo Then
Cells(j, 3).Select
End If
End If
Next j

Sheets("Tableau_de_bord").Select
Range("A1").Select
MsgBox "FIN"
Sheets("Tableau_de_bord").Select
Application.ScreenUpdating = True
Sheets("Tableau_de_bord").Select
Range("A1").Select
MsgBox "FIN"
Sheets("Tableau_de_bord").Select
Application.ScreenUpdating = True
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 235
Messages
2 086 476
Membres
103 227
dernier inscrit
maloalek