Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et on
l'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37 ième
ligne."
**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant
?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule B18 ...
Pourquoi ? Tu ne donnes pas l'explication
dans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi ce test
?
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:
Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré
une donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M) sur une
autre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première macro.
En résumé la Macro vérifie si il y a une entré dans une des deux première
colonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a entré une
donné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", , "5000",
"2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et on
l'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37 ième
ligne."
**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant
?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule B18 ...
Pourquoi ? Tu ne donnes pas l'explication
dans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi ce test
?
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message de
news:erTRsDsWEHA.3944@tk2msftngp13.phx.gbl...
Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré
une donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M) sur une
autre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première macro.
En résumé la Macro vérifie si il y a une entré dans une des deux première
colonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a entré une
donné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", , "5000",
"2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et on
l'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37 ième
ligne."
**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant
?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule B18 ...
Pourquoi ? Tu ne donnes pas l'explication
dans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi ce test
?
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:
Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré
une donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M) sur une
autre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première macro.
En résumé la Macro vérifie si il y a une entré dans une des deux première
colonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a entré une
donné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", , "5000",
"2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et on
l'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37 ième
ligne."
**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant
?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule B18 ...
Pourquoi ? Tu ne donnes pas l'explication
dans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi ce test
?
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:
Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré
une donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M) sur une
autre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première macro.
En résumé la Macro vérifie si il y a une entré dans une des deux première
colonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a entré une
donné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", , "5000",
"2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et on
l'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37 ième
ligne."
**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant
?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule B18 ...
Pourquoi ? Tu ne donnes pas l'explication
dans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi ce test
?
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message de
news:erTRsDsWEHA.3944@tk2msftngp13.phx.gbl...
Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré
une donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M) sur une
autre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première macro.
En résumé la Macro vérifie si il y a une entré dans une des deux première
colonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a entré une
donné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", , "5000",
"2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et on
l'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37 ième
ligne."
**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant
?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule B18 ...
Pourquoi ? Tu ne donnes pas l'explication
dans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi ce test
?
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:
Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré
une donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M) sur une
autre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première macro.
En résumé la Macro vérifie si il y a une entré dans une des deux première
colonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a entré une
donné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", , "5000",
"2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Bonjour Daniel,
Je n'ai pas tout compris ce que tu voulais, mais j'ai imbriqué les 2
procédures :
Tu copies ces 2 procédures dans un module standard, et tu appelles
seulement la procédure : Vérification()
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
Do
If C = "" Then
C.Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Value <> ""
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'-------------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:
Bien Bonjour Michdenis
1: **** ça se passe sur quelle feuille de calcul ?
sur la feuille ou il y a le bouton qui démar la macro ("Feuille_insp")
2: **** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant
Non il doit entrée une donné !! (ces ligne de code je voulait les mettre
parceque cela inserer la date et l'heure dans la colonne "L".
3: Dans la procédure 1 ces avec cela que je vérifie si l'utilisateur a
oublier la colonne "E" sur chaqu'une des ligne .
Merci
"michdenis" a écrit dans le message de
news:Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et onl'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37 ième
ligne."**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule B18
...
Pourquoi ? Tu ne donnes pas l'explicationdans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi ce
test
?
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entréune donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M) sur
une
autre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première macro.
En résumé la Macro vérifie si il y a une entré dans une des deux
première
colonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a entré
une
donné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", ,
"5000",
"2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Bonjour Daniel,
Je n'ai pas tout compris ce que tu voulais, mais j'ai imbriqué les 2
procédures :
Tu copies ces 2 procédures dans un module standard, et tu appelles
seulement la procédure : Vérification()
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
Do
If C = "" Then
C.Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Value <> ""
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'-------------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message de
news:eijPvJtWEHA.3200@TK2MSFTNGP09.phx.gbl...
Bien Bonjour Michdenis
1: **** ça se passe sur quelle feuille de calcul ?
sur la feuille ou il y a le bouton qui démar la macro ("Feuille_insp")
2: **** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant
Non il doit entrée une donné !! (ces ligne de code je voulait les mettre
parceque cela inserer la date et l'heure dans la colonne "L".
3: Dans la procédure 1 ces avec cela que je vérifie si l'utilisateur a
oublier la colonne "E" sur chaqu'une des ligne .
Merci
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:u1evBvsWEHA.3340@TK2MSFTNGP10.phx.gbl...
Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et on
l'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37 ième
ligne."
**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant
?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule B18
...
Pourquoi ? Tu ne donnes pas l'explication
dans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi ce
test
?
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message de
news:erTRsDsWEHA.3944@tk2msftngp13.phx.gbl...
Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré
une donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M) sur
une
autre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première macro.
En résumé la Macro vérifie si il y a une entré dans une des deux
première
colonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a entré
une
donné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", ,
"5000",
"2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Bonjour Daniel,
Je n'ai pas tout compris ce que tu voulais, mais j'ai imbriqué les 2
procédures :
Tu copies ces 2 procédures dans un module standard, et tu appelles
seulement la procédure : Vérification()
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
Do
If C = "" Then
C.Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Value <> ""
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'-------------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:
Bien Bonjour Michdenis
1: **** ça se passe sur quelle feuille de calcul ?
sur la feuille ou il y a le bouton qui démar la macro ("Feuille_insp")
2: **** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant
Non il doit entrée une donné !! (ces ligne de code je voulait les mettre
parceque cela inserer la date et l'heure dans la colonne "L".
3: Dans la procédure 1 ces avec cela que je vérifie si l'utilisateur a
oublier la colonne "E" sur chaqu'une des ligne .
Merci
"michdenis" a écrit dans le message de
news:Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et onl'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37 ième
ligne."**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule B18
...
Pourquoi ? Tu ne donnes pas l'explicationdans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi ce
test
?
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entréune donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M) sur
une
autre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première macro.
En résumé la Macro vérifie si il y a une entré dans une des deux
première
colonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a entré
une
donné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", ,
"5000",
"2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Bonjour Daniel,
Je n'ai pas tout compris ce que tu voulais, mais j'ai imbriqué les 2
procédures :
Tu copies ces 2 procédures dans un module standard, et tu appelles
seulement la procédure : Vérification()
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
Do
If C = "" Then
C.Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Value <> ""
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'-------------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:
Bien Bonjour Michdenis
1: **** ça se passe sur quelle feuille de calcul ?
sur la feuille ou il y a le bouton qui démar la macro ("Feuille_insp")
2: **** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant
Non il doit entrée une donné !! (ces ligne de code je voulait les mettre
parceque cela inserer la date et l'heure dans la colonne "L".
3: Dans la procédure 1 ces avec cela que je vérifie si l'utilisateur a
oublier la colonne "E" sur chaqu'une des ligne .
Merci
"michdenis" a écrit dans le message de
news:Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et onl'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37 ième
ligne."**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule B18
...
Pourquoi ? Tu ne donnes pas l'explicationdans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi ce
test
?
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entréune donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M) sur
une
autre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première macro.
En résumé la Macro vérifie si il y a une entré dans une des deux
première
colonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a entré
une
donné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", ,
"5000",
"2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Bonjour Daniel,
Je n'ai pas tout compris ce que tu voulais, mais j'ai imbriqué les 2
procédures :
Tu copies ces 2 procédures dans un module standard, et tu appelles
seulement la procédure : Vérification()
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
Do
If C = "" Then
C.Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Value <> ""
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'-------------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message de
news:eijPvJtWEHA.3200@TK2MSFTNGP09.phx.gbl...
Bien Bonjour Michdenis
1: **** ça se passe sur quelle feuille de calcul ?
sur la feuille ou il y a le bouton qui démar la macro ("Feuille_insp")
2: **** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant
Non il doit entrée une donné !! (ces ligne de code je voulait les mettre
parceque cela inserer la date et l'heure dans la colonne "L".
3: Dans la procédure 1 ces avec cela que je vérifie si l'utilisateur a
oublier la colonne "E" sur chaqu'une des ligne .
Merci
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:u1evBvsWEHA.3340@TK2MSFTNGP10.phx.gbl...
Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et on
l'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37 ième
ligne."
**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant
?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule B18
...
Pourquoi ? Tu ne donnes pas l'explication
dans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi ce
test
?
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message de
news:erTRsDsWEHA.3944@tk2msftngp13.phx.gbl...
Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré
une donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M) sur
une
autre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première macro.
En résumé la Macro vérifie si il y a une entré dans une des deux
première
colonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a entré
une
donné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", ,
"5000",
"2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Bonjour Daniel,
Je n'ai pas tout compris ce que tu voulais, mais j'ai imbriqué les 2
procédures :
Tu copies ces 2 procédures dans un module standard, et tu appelles
seulement la procédure : Vérification()
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
Do
If C = "" Then
C.Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Value <> ""
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'-------------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:
Bien Bonjour Michdenis
1: **** ça se passe sur quelle feuille de calcul ?
sur la feuille ou il y a le bouton qui démar la macro ("Feuille_insp")
2: **** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant
Non il doit entrée une donné !! (ces ligne de code je voulait les mettre
parceque cela inserer la date et l'heure dans la colonne "L".
3: Dans la procédure 1 ces avec cela que je vérifie si l'utilisateur a
oublier la colonne "E" sur chaqu'une des ligne .
Merci
"michdenis" a écrit dans le message de
news:Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et onl'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37 ième
ligne."**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule B18
...
Pourquoi ? Tu ne donnes pas l'explicationdans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi ce
test
?
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entréune donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M) sur
une
autre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première macro.
En résumé la Macro vérifie si il y a une entré dans une des deux
première
colonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a entré
une
donné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", ,
"5000",
"2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Bien, je me suis basé sur ceci issu de ton premier message :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré
une donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne."
Si je comprends bien, ce n'est pas seulement la colonne E mais B, C et E
des lignes 18 à 37 qui doivent être
renseignées.
Est-ce que dans ces cellules, il y a un type de données particulières où
si l'usager peut se permettre d'inscrire
n'importe quoi ?
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:%
ReBonjour Michdenis
Ca fonctionne en partie , la macro copie bien dans l'autre feuille
Mais elle n'arrête pas même si l'utilisateur na rien entré dans les deux
première colonne (B & C).
Elle doit coipier les ligne qui on une entrée dans B ou C.
Merci
"michdenis" a écrit dans le message de
news:%Bonjour Daniel,
Je n'ai pas tout compris ce que tu voulais, mais j'ai imbriqué les 2
procédures :
Tu copies ces 2 procédures dans un module standard, et tu appelles
seulement la procédure : Vérification()
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
Do
If C = "" Then
C.Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Value <> ""
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'-------------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:Bien Bonjour Michdenis
1: **** ça se passe sur quelle feuille de calcul ?
sur la feuille ou il y a le bouton qui démar la macro ("Feuille_insp")
2: **** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façon
doit-on mettre fin à la procédure, le cas échéant
Non il doit entrée une donné !! (ces ligne de code je voulait les
mettre
parceque cela inserer la date et l'heure dans la colonne "L".
3: Dans la procédure 1 ces avec cela que je vérifie si l'utilisateur a
oublier la colonne "E" sur chaqu'une des ligne .
Merci
"michdenis" a écrit dans le message de
news:Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et onl'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37 ième
ligne."**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule B18
...Pourquoi ? Tu ne donnes pas l'explicationdans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi ce
test?
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entréune donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M) sur
uneautre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première macro.
En résumé la Macro vérifie si il y a une entré dans une des deux
premièrecolonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a entré
unedonné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", ,
"5000","2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Bien, je me suis basé sur ceci issu de ton premier message :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré
une donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne."
Si je comprends bien, ce n'est pas seulement la colonne E mais B, C et E
des lignes 18 à 37 qui doivent être
renseignées.
Est-ce que dans ces cellules, il y a un type de données particulières où
si l'usager peut se permettre d'inscrire
n'importe quoi ?
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message de
news:%239pOQQuWEHA.1356@TK2MSFTNGP09.phx.gbl...
ReBonjour Michdenis
Ca fonctionne en partie , la macro copie bien dans l'autre feuille
Mais elle n'arrête pas même si l'utilisateur na rien entré dans les deux
première colonne (B & C).
Elle doit coipier les ligne qui on une entrée dans B ou C.
Merci
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:%23q8oGvtWEHA.3200@TK2MSFTNGP09.phx.gbl...
Bonjour Daniel,
Je n'ai pas tout compris ce que tu voulais, mais j'ai imbriqué les 2
procédures :
Tu copies ces 2 procédures dans un module standard, et tu appelles
seulement la procédure : Vérification()
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
Do
If C = "" Then
C.Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Value <> ""
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'-------------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message de
news:eijPvJtWEHA.3200@TK2MSFTNGP09.phx.gbl...
Bien Bonjour Michdenis
1: **** ça se passe sur quelle feuille de calcul ?
sur la feuille ou il y a le bouton qui démar la macro ("Feuille_insp")
2: **** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façon
doit-on mettre fin à la procédure, le cas échéant
Non il doit entrée une donné !! (ces ligne de code je voulait les
mettre
parceque cela inserer la date et l'heure dans la colonne "L".
3: Dans la procédure 1 ces avec cela que je vérifie si l'utilisateur a
oublier la colonne "E" sur chaqu'une des ligne .
Merci
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:u1evBvsWEHA.3340@TK2MSFTNGP10.phx.gbl...
Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et on
l'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37 ième
ligne."
**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant
?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule B18
...
Pourquoi ? Tu ne donnes pas l'explication
dans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi ce
test
?
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message de
news:erTRsDsWEHA.3944@tk2msftngp13.phx.gbl...
Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré
une donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M) sur
une
autre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première macro.
En résumé la Macro vérifie si il y a une entré dans une des deux
première
colonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a entré
une
donné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", ,
"5000",
"2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Bien, je me suis basé sur ceci issu de ton premier message :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré
une donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne."
Si je comprends bien, ce n'est pas seulement la colonne E mais B, C et E
des lignes 18 à 37 qui doivent être
renseignées.
Est-ce que dans ces cellules, il y a un type de données particulières où
si l'usager peut se permettre d'inscrire
n'importe quoi ?
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:%
ReBonjour Michdenis
Ca fonctionne en partie , la macro copie bien dans l'autre feuille
Mais elle n'arrête pas même si l'utilisateur na rien entré dans les deux
première colonne (B & C).
Elle doit coipier les ligne qui on une entrée dans B ou C.
Merci
"michdenis" a écrit dans le message de
news:%Bonjour Daniel,
Je n'ai pas tout compris ce que tu voulais, mais j'ai imbriqué les 2
procédures :
Tu copies ces 2 procédures dans un module standard, et tu appelles
seulement la procédure : Vérification()
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
Do
If C = "" Then
C.Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Value <> ""
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'-------------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:Bien Bonjour Michdenis
1: **** ça se passe sur quelle feuille de calcul ?
sur la feuille ou il y a le bouton qui démar la macro ("Feuille_insp")
2: **** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façon
doit-on mettre fin à la procédure, le cas échéant
Non il doit entrée une donné !! (ces ligne de code je voulait les
mettre
parceque cela inserer la date et l'heure dans la colonne "L".
3: Dans la procédure 1 ces avec cela que je vérifie si l'utilisateur a
oublier la colonne "E" sur chaqu'une des ligne .
Merci
"michdenis" a écrit dans le message de
news:Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et onl'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37 ième
ligne."**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule B18
...Pourquoi ? Tu ne donnes pas l'explicationdans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi ce
test?
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entréune donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M) sur
uneautre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première macro.
En résumé la Macro vérifie si il y a une entré dans une des deux
premièrecolonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a entré
unedonné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", ,
"5000","2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Bien, je me suis basé sur ceci issu de ton premier message :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré
une donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne."
Si je comprends bien, ce n'est pas seulement la colonne E mais B, C et E
des lignes 18 à 37 qui doivent être
renseignées.
Est-ce que dans ces cellules, il y a un type de données particulières où
si l'usager peut se permettre d'inscrire
n'importe quoi ?
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:%
ReBonjour Michdenis
Ca fonctionne en partie , la macro copie bien dans l'autre feuille
Mais elle n'arrête pas même si l'utilisateur na rien entré dans les deux
première colonne (B & C).
Elle doit coipier les ligne qui on une entrée dans B ou C.
Merci
"michdenis" a écrit dans le message de
news:%Bonjour Daniel,
Je n'ai pas tout compris ce que tu voulais, mais j'ai imbriqué les 2
procédures :
Tu copies ces 2 procédures dans un module standard, et tu appelles
seulement la procédure : Vérification()
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
Do
If C = "" Then
C.Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Value <> ""
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'-------------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:Bien Bonjour Michdenis
1: **** ça se passe sur quelle feuille de calcul ?
sur la feuille ou il y a le bouton qui démar la macro ("Feuille_insp")
2: **** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façon
doit-on mettre fin à la procédure, le cas échéant
Non il doit entrée une donné !! (ces ligne de code je voulait les
mettre
parceque cela inserer la date et l'heure dans la colonne "L".
3: Dans la procédure 1 ces avec cela que je vérifie si l'utilisateur a
oublier la colonne "E" sur chaqu'une des ligne .
Merci
"michdenis" a écrit dans le message de
news:Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et onl'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37 ième
ligne."**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule B18
...Pourquoi ? Tu ne donnes pas l'explicationdans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi ce
test?
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entréune donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M) sur
uneautre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première macro.
En résumé la Macro vérifie si il y a une entré dans une des deux
premièrecolonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a entré
unedonné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", ,
"5000","2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Bien, je me suis basé sur ceci issu de ton premier message :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré
une donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne."
Si je comprends bien, ce n'est pas seulement la colonne E mais B, C et E
des lignes 18 à 37 qui doivent être
renseignées.
Est-ce que dans ces cellules, il y a un type de données particulières où
si l'usager peut se permettre d'inscrire
n'importe quoi ?
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message de
news:%239pOQQuWEHA.1356@TK2MSFTNGP09.phx.gbl...
ReBonjour Michdenis
Ca fonctionne en partie , la macro copie bien dans l'autre feuille
Mais elle n'arrête pas même si l'utilisateur na rien entré dans les deux
première colonne (B & C).
Elle doit coipier les ligne qui on une entrée dans B ou C.
Merci
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:%23q8oGvtWEHA.3200@TK2MSFTNGP09.phx.gbl...
Bonjour Daniel,
Je n'ai pas tout compris ce que tu voulais, mais j'ai imbriqué les 2
procédures :
Tu copies ces 2 procédures dans un module standard, et tu appelles
seulement la procédure : Vérification()
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
Do
If C = "" Then
C.Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Value <> ""
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'-------------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message de
news:eijPvJtWEHA.3200@TK2MSFTNGP09.phx.gbl...
Bien Bonjour Michdenis
1: **** ça se passe sur quelle feuille de calcul ?
sur la feuille ou il y a le bouton qui démar la macro ("Feuille_insp")
2: **** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façon
doit-on mettre fin à la procédure, le cas échéant
Non il doit entrée une donné !! (ces ligne de code je voulait les
mettre
parceque cela inserer la date et l'heure dans la colonne "L".
3: Dans la procédure 1 ces avec cela que je vérifie si l'utilisateur a
oublier la colonne "E" sur chaqu'une des ligne .
Merci
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:u1evBvsWEHA.3340@TK2MSFTNGP10.phx.gbl...
Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et on
l'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37 ième
ligne."
**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant
?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule B18
...
Pourquoi ? Tu ne donnes pas l'explication
dans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi ce
test
?
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message de
news:erTRsDsWEHA.3944@tk2msftngp13.phx.gbl...
Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré
une donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M) sur
une
autre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première macro.
En résumé la Macro vérifie si il y a une entré dans une des deux
première
colonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a entré
une
donné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", ,
"5000",
"2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Bien, je me suis basé sur ceci issu de ton premier message :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré
une donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne."
Si je comprends bien, ce n'est pas seulement la colonne E mais B, C et E
des lignes 18 à 37 qui doivent être
renseignées.
Est-ce que dans ces cellules, il y a un type de données particulières où
si l'usager peut se permettre d'inscrire
n'importe quoi ?
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:%
ReBonjour Michdenis
Ca fonctionne en partie , la macro copie bien dans l'autre feuille
Mais elle n'arrête pas même si l'utilisateur na rien entré dans les deux
première colonne (B & C).
Elle doit coipier les ligne qui on une entrée dans B ou C.
Merci
"michdenis" a écrit dans le message de
news:%Bonjour Daniel,
Je n'ai pas tout compris ce que tu voulais, mais j'ai imbriqué les 2
procédures :
Tu copies ces 2 procédures dans un module standard, et tu appelles
seulement la procédure : Vérification()
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
Do
If C = "" Then
C.Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Value <> ""
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'-------------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:Bien Bonjour Michdenis
1: **** ça se passe sur quelle feuille de calcul ?
sur la feuille ou il y a le bouton qui démar la macro ("Feuille_insp")
2: **** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façon
doit-on mettre fin à la procédure, le cas échéant
Non il doit entrée une donné !! (ces ligne de code je voulait les
mettre
parceque cela inserer la date et l'heure dans la colonne "L".
3: Dans la procédure 1 ces avec cela que je vérifie si l'utilisateur a
oublier la colonne "E" sur chaqu'une des ligne .
Merci
"michdenis" a écrit dans le message de
news:Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et onl'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37 ième
ligne."**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle façon
doit-on mettre fin à la procédure, le cas échéant?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule B18
...Pourquoi ? Tu ne donnes pas l'explicationdans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi ce
test?
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entréune donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M) sur
uneautre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première macro.
En résumé la Macro vérifie si il y a une entré dans une des deux
premièrecolonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a entré
unedonné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", ,
"5000","2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Bonjour Daniel,
Les 3 champs devront être rempli. Il pourra le faire en renseignant
directement la boîte de dialogue.
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range, A As Integer
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
For A = 3 To 1 Step -1
If A = 1 Then A = -1
Do
If C.Offset(, -A) = "" Then
C.Offset(, -A) = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If A = -1 And C.Offset(, -A) <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Offset(, -A) <> ""
Next
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'----------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:
Je mexcuse de l'oublie.
L'utilisateur doit avoir entré au moin une donné (il a choix de prendre
les
déroulers de validation ou ce qu'il veut)
dans colonne B ou C ou les deux et si il oublie d'entré en E la macro lui
impose.
merci
"michdenis" a écrit dans le message de
news:uu7$Bien, je me suis basé sur ceci issu de ton premier message :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entréune donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne."
Si je comprends bien, ce n'est pas seulement la colonne E mais B, C et E
des lignes 18 à 37 qui doivent êtrerenseignées.
Est-ce que dans ces cellules, il y a un type de données particulières où
si l'usager peut se permettre d'inscriren'importe quoi ?
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:%ReBonjour Michdenis
Ca fonctionne en partie , la macro copie bien dans l'autre feuille
Mais elle n'arrête pas même si l'utilisateur na rien entré dans les deux
première colonne (B & C).
Elle doit coipier les ligne qui on une entrée dans B ou C.
Merci
"michdenis" a écrit dans le message de
news:%Bonjour Daniel,
Je n'ai pas tout compris ce que tu voulais, mais j'ai imbriqué les 2
procédures :
Tu copies ces 2 procédures dans un module standard, et tu appelles
seulement la procédure : Vérification()
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
Do
If C = "" Then
C.Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Value <> ""
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'-------------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:Bien Bonjour Michdenis
1: **** ça se passe sur quelle feuille de calcul ?
sur la feuille ou il y a le bouton qui démar la macro ("Feuille_insp")
2: **** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façondoit-on mettre fin à la procédure, le cas échéant
Non il doit entrée une donné !! (ces ligne de code je voulait les
mettreparceque cela inserer la date et l'heure dans la colonne "L".
3: Dans la procédure 1 ces avec cela que je vérifie si l'utilisateur
a
oublier la colonne "E" sur chaqu'une des ligne .
Merci
"michdenis" a écrit dans le message de
news:Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et onl'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37
ième
ligne."**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façon
doit-on mettre fin à la procédure, le cas échéant?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule
B18
...Pourquoi ? Tu ne donnes pas l'explicationdans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi
ce
test?
Salutations!
"Daniel Pelletier" a écrit dans le message
de
news:Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entréune donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M)
sur
uneautre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première
macro.
En résumé la Macro vérifie si il y a une entré dans une des deux
premièrecolonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a
entré
unedonné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", ,
"5000","2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" &
.Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Bonjour Daniel,
Les 3 champs devront être rempli. Il pourra le faire en renseignant
directement la boîte de dialogue.
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range, A As Integer
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
For A = 3 To 1 Step -1
If A = 1 Then A = -1
Do
If C.Offset(, -A) = "" Then
C.Offset(, -A) = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If A = -1 And C.Offset(, -A) <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Offset(, -A) <> ""
Next
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'----------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message de
news:eG4ahduWEHA.1380@TK2MSFTNGP09.phx.gbl...
Je mexcuse de l'oublie.
L'utilisateur doit avoir entré au moin une donné (il a choix de prendre
les
déroulers de validation ou ce qu'il veut)
dans colonne B ou C ou les deux et si il oublie d'entré en E la macro lui
impose.
merci
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:uu7$6VuWEHA.2176@TK2MSFTNGP11.phx.gbl...
Bien, je me suis basé sur ceci issu de ton premier message :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré
une donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne."
Si je comprends bien, ce n'est pas seulement la colonne E mais B, C et E
des lignes 18 à 37 qui doivent être
renseignées.
Est-ce que dans ces cellules, il y a un type de données particulières où
si l'usager peut se permettre d'inscrire
n'importe quoi ?
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message de
news:%239pOQQuWEHA.1356@TK2MSFTNGP09.phx.gbl...
ReBonjour Michdenis
Ca fonctionne en partie , la macro copie bien dans l'autre feuille
Mais elle n'arrête pas même si l'utilisateur na rien entré dans les deux
première colonne (B & C).
Elle doit coipier les ligne qui on une entrée dans B ou C.
Merci
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:%23q8oGvtWEHA.3200@TK2MSFTNGP09.phx.gbl...
Bonjour Daniel,
Je n'ai pas tout compris ce que tu voulais, mais j'ai imbriqué les 2
procédures :
Tu copies ces 2 procédures dans un module standard, et tu appelles
seulement la procédure : Vérification()
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
Do
If C = "" Then
C.Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Value <> ""
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'-------------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message de
news:eijPvJtWEHA.3200@TK2MSFTNGP09.phx.gbl...
Bien Bonjour Michdenis
1: **** ça se passe sur quelle feuille de calcul ?
sur la feuille ou il y a le bouton qui démar la macro ("Feuille_insp")
2: **** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façon
doit-on mettre fin à la procédure, le cas échéant
Non il doit entrée une donné !! (ces ligne de code je voulait les
mettre
parceque cela inserer la date et l'heure dans la colonne "L".
3: Dans la procédure 1 ces avec cela que je vérifie si l'utilisateur
a
oublier la colonne "E" sur chaqu'une des ligne .
Merci
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:u1evBvsWEHA.3340@TK2MSFTNGP10.phx.gbl...
Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et on
l'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37
ième
ligne."
**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façon
doit-on mettre fin à la procédure, le cas échéant
?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule
B18
...
Pourquoi ? Tu ne donnes pas l'explication
dans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi
ce
test
?
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message
de
news:erTRsDsWEHA.3944@tk2msftngp13.phx.gbl...
Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré
une donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M)
sur
une
autre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première
macro.
En résumé la Macro vérifie si il y a une entré dans une des deux
première
colonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a
entré
une
donné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", ,
"5000",
"2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" &
.Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Bonjour Daniel,
Les 3 champs devront être rempli. Il pourra le faire en renseignant
directement la boîte de dialogue.
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range, A As Integer
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
For A = 3 To 1 Step -1
If A = 1 Then A = -1
Do
If C.Offset(, -A) = "" Then
C.Offset(, -A) = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If A = -1 And C.Offset(, -A) <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Offset(, -A) <> ""
Next
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'----------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:
Je mexcuse de l'oublie.
L'utilisateur doit avoir entré au moin une donné (il a choix de prendre
les
déroulers de validation ou ce qu'il veut)
dans colonne B ou C ou les deux et si il oublie d'entré en E la macro lui
impose.
merci
"michdenis" a écrit dans le message de
news:uu7$Bien, je me suis basé sur ceci issu de ton premier message :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entréune donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne."
Si je comprends bien, ce n'est pas seulement la colonne E mais B, C et E
des lignes 18 à 37 qui doivent êtrerenseignées.
Est-ce que dans ces cellules, il y a un type de données particulières où
si l'usager peut se permettre d'inscriren'importe quoi ?
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:%ReBonjour Michdenis
Ca fonctionne en partie , la macro copie bien dans l'autre feuille
Mais elle n'arrête pas même si l'utilisateur na rien entré dans les deux
première colonne (B & C).
Elle doit coipier les ligne qui on une entrée dans B ou C.
Merci
"michdenis" a écrit dans le message de
news:%Bonjour Daniel,
Je n'ai pas tout compris ce que tu voulais, mais j'ai imbriqué les 2
procédures :
Tu copies ces 2 procédures dans un module standard, et tu appelles
seulement la procédure : Vérification()
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
Do
If C = "" Then
C.Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Value <> ""
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'-------------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:Bien Bonjour Michdenis
1: **** ça se passe sur quelle feuille de calcul ?
sur la feuille ou il y a le bouton qui démar la macro ("Feuille_insp")
2: **** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façondoit-on mettre fin à la procédure, le cas échéant
Non il doit entrée une donné !! (ces ligne de code je voulait les
mettreparceque cela inserer la date et l'heure dans la colonne "L".
3: Dans la procédure 1 ces avec cela que je vérifie si l'utilisateur
a
oublier la colonne "E" sur chaqu'une des ligne .
Merci
"michdenis" a écrit dans le message de
news:Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et onl'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37
ième
ligne."**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façon
doit-on mettre fin à la procédure, le cas échéant?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule
B18
...Pourquoi ? Tu ne donnes pas l'explicationdans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi
ce
test?
Salutations!
"Daniel Pelletier" a écrit dans le message
de
news:Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entréune donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M)
sur
uneautre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première
macro.
En résumé la Macro vérifie si il y a une entré dans une des deux
premièrecolonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a
entré
unedonné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", ,
"5000","2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" &
.Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Bonjour Daniel,
Les 3 champs devront être rempli. Il pourra le faire en renseignant
directement la boîte de dialogue.
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range, A As Integer
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
For A = 3 To 1 Step -1
If A = 1 Then A = -1
Do
If C.Offset(, -A) = "" Then
C.Offset(, -A) = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If A = -1 And C.Offset(, -A) <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Offset(, -A) <> ""
Next
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'----------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:
Je mexcuse de l'oublie.
L'utilisateur doit avoir entré au moin une donné (il a choix de prendre
les
déroulers de validation ou ce qu'il veut)
dans colonne B ou C ou les deux et si il oublie d'entré en E la macro lui
impose.
merci
"michdenis" a écrit dans le message de
news:uu7$Bien, je me suis basé sur ceci issu de ton premier message :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entréune donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne."
Si je comprends bien, ce n'est pas seulement la colonne E mais B, C et E
des lignes 18 à 37 qui doivent êtrerenseignées.
Est-ce que dans ces cellules, il y a un type de données particulières où
si l'usager peut se permettre d'inscriren'importe quoi ?
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:%ReBonjour Michdenis
Ca fonctionne en partie , la macro copie bien dans l'autre feuille
Mais elle n'arrête pas même si l'utilisateur na rien entré dans les deux
première colonne (B & C).
Elle doit coipier les ligne qui on une entrée dans B ou C.
Merci
"michdenis" a écrit dans le message de
news:%Bonjour Daniel,
Je n'ai pas tout compris ce que tu voulais, mais j'ai imbriqué les 2
procédures :
Tu copies ces 2 procédures dans un module standard, et tu appelles
seulement la procédure : Vérification()
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
Do
If C = "" Then
C.Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Value <> ""
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'-------------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:Bien Bonjour Michdenis
1: **** ça se passe sur quelle feuille de calcul ?
sur la feuille ou il y a le bouton qui démar la macro ("Feuille_insp")
2: **** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façondoit-on mettre fin à la procédure, le cas échéant
Non il doit entrée une donné !! (ces ligne de code je voulait les
mettreparceque cela inserer la date et l'heure dans la colonne "L".
3: Dans la procédure 1 ces avec cela que je vérifie si l'utilisateur
a
oublier la colonne "E" sur chaqu'une des ligne .
Merci
"michdenis" a écrit dans le message de
news:Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et onl'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37
ième
ligne."**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façon
doit-on mettre fin à la procédure, le cas échéant?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule
B18
...Pourquoi ? Tu ne donnes pas l'explicationdans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi
ce
test?
Salutations!
"Daniel Pelletier" a écrit dans le message
de
news:Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entréune donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M)
sur
uneautre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première
macro.
En résumé la Macro vérifie si il y a une entré dans une des deux
premièrecolonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a
entré
unedonné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", ,
"5000","2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" &
.Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Bonjour Daniel,
Les 3 champs devront être rempli. Il pourra le faire en renseignant
directement la boîte de dialogue.
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range, A As Integer
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
For A = 3 To 1 Step -1
If A = 1 Then A = -1
Do
If C.Offset(, -A) = "" Then
C.Offset(, -A) = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If A = -1 And C.Offset(, -A) <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Offset(, -A) <> ""
Next
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'----------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message de
news:eG4ahduWEHA.1380@TK2MSFTNGP09.phx.gbl...
Je mexcuse de l'oublie.
L'utilisateur doit avoir entré au moin une donné (il a choix de prendre
les
déroulers de validation ou ce qu'il veut)
dans colonne B ou C ou les deux et si il oublie d'entré en E la macro lui
impose.
merci
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:uu7$6VuWEHA.2176@TK2MSFTNGP11.phx.gbl...
Bien, je me suis basé sur ceci issu de ton premier message :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré
une donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne."
Si je comprends bien, ce n'est pas seulement la colonne E mais B, C et E
des lignes 18 à 37 qui doivent être
renseignées.
Est-ce que dans ces cellules, il y a un type de données particulières où
si l'usager peut se permettre d'inscrire
n'importe quoi ?
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message de
news:%239pOQQuWEHA.1356@TK2MSFTNGP09.phx.gbl...
ReBonjour Michdenis
Ca fonctionne en partie , la macro copie bien dans l'autre feuille
Mais elle n'arrête pas même si l'utilisateur na rien entré dans les deux
première colonne (B & C).
Elle doit coipier les ligne qui on une entrée dans B ou C.
Merci
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:%23q8oGvtWEHA.3200@TK2MSFTNGP09.phx.gbl...
Bonjour Daniel,
Je n'ai pas tout compris ce que tu voulais, mais j'ai imbriqué les 2
procédures :
Tu copies ces 2 procédures dans un module standard, et tu appelles
seulement la procédure : Vérification()
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
Do
If C = "" Then
C.Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Value <> ""
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'-------------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message de
news:eijPvJtWEHA.3200@TK2MSFTNGP09.phx.gbl...
Bien Bonjour Michdenis
1: **** ça se passe sur quelle feuille de calcul ?
sur la feuille ou il y a le bouton qui démar la macro ("Feuille_insp")
2: **** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façon
doit-on mettre fin à la procédure, le cas échéant
Non il doit entrée une donné !! (ces ligne de code je voulait les
mettre
parceque cela inserer la date et l'heure dans la colonne "L".
3: Dans la procédure 1 ces avec cela que je vérifie si l'utilisateur
a
oublier la colonne "E" sur chaqu'une des ligne .
Merci
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:u1evBvsWEHA.3340@TK2MSFTNGP10.phx.gbl...
Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et on
l'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37
ième
ligne."
**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façon
doit-on mettre fin à la procédure, le cas échéant
?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule
B18
...
Pourquoi ? Tu ne donnes pas l'explication
dans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi
ce
test
?
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message
de
news:erTRsDsWEHA.3944@tk2msftngp13.phx.gbl...
Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré
une donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M)
sur
une
autre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première
macro.
En résumé la Macro vérifie si il y a une entré dans une des deux
première
colonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a
entré
une
donné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", ,
"5000",
"2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" &
.Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Bonjour Daniel,
Les 3 champs devront être rempli. Il pourra le faire en renseignant
directement la boîte de dialogue.
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range, A As Integer
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
For A = 3 To 1 Step -1
If A = 1 Then A = -1
Do
If C.Offset(, -A) = "" Then
C.Offset(, -A) = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If A = -1 And C.Offset(, -A) <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Offset(, -A) <> ""
Next
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'----------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:
Je mexcuse de l'oublie.
L'utilisateur doit avoir entré au moin une donné (il a choix de prendre
les
déroulers de validation ou ce qu'il veut)
dans colonne B ou C ou les deux et si il oublie d'entré en E la macro lui
impose.
merci
"michdenis" a écrit dans le message de
news:uu7$Bien, je me suis basé sur ceci issu de ton premier message :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entréune donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne."
Si je comprends bien, ce n'est pas seulement la colonne E mais B, C et E
des lignes 18 à 37 qui doivent êtrerenseignées.
Est-ce que dans ces cellules, il y a un type de données particulières où
si l'usager peut se permettre d'inscriren'importe quoi ?
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:%ReBonjour Michdenis
Ca fonctionne en partie , la macro copie bien dans l'autre feuille
Mais elle n'arrête pas même si l'utilisateur na rien entré dans les deux
première colonne (B & C).
Elle doit coipier les ligne qui on une entrée dans B ou C.
Merci
"michdenis" a écrit dans le message de
news:%Bonjour Daniel,
Je n'ai pas tout compris ce que tu voulais, mais j'ai imbriqué les 2
procédures :
Tu copies ces 2 procédures dans un module standard, et tu appelles
seulement la procédure : Vérification()
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
Do
If C = "" Then
C.Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Value <> ""
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'-------------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:Bien Bonjour Michdenis
1: **** ça se passe sur quelle feuille de calcul ?
sur la feuille ou il y a le bouton qui démar la macro ("Feuille_insp")
2: **** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façondoit-on mettre fin à la procédure, le cas échéant
Non il doit entrée une donné !! (ces ligne de code je voulait les
mettreparceque cela inserer la date et l'heure dans la colonne "L".
3: Dans la procédure 1 ces avec cela que je vérifie si l'utilisateur
a
oublier la colonne "E" sur chaqu'une des ligne .
Merci
"michdenis" a écrit dans le message de
news:Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré une donné dans la colonne "E" et onl'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37
ième
ligne."**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façon
doit-on mettre fin à la procédure, le cas échéant?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule
B18
...Pourquoi ? Tu ne donnes pas l'explicationdans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi
ce
test?
Salutations!
"Daniel Pelletier" a écrit dans le message
de
news:Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entréune donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M)
sur
uneautre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première
macro.
En résumé la Macro vérifie si il y a une entré dans une des deux
premièrecolonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a
entré
unedonné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", ,
"5000","2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" &
.Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Sub Vérification()
Dim Rg As Range, C As Range, A As Integer
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
If C.Offset(, 3) <> "" And C.Offset(, -2) <> "" Then
Do
If C = "" Then
C = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C <> ""
End If
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
"Daniel Pelletier" a écrit dans le message de
news:%
Et non, je ne veut pas faire remplir tout les champ.
Je m'explique l'utilisateur si n'a pas entré de donné dans colonne B ou C
la
macro passe a la ligne suivante.
et si il a entré en C ou B ou les deux,
il faut que E est une donné avant de copier la ligne dans l'autre
feuille("Base").
Merci
"michdenis" a écrit dans le message de
news:uSh5q$Bonjour Daniel,
Les 3 champs devront être rempli. Il pourra le faire en renseignant
directement la boîte de dialogue.
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range, A As Integer
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
For A = 3 To 1 Step -1
If A = 1 Then A = -1
Do
If C.Offset(, -A) = "" Then
C.Offset(, -A) = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If A = -1 And C.Offset(, -A) <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Offset(, -A) <> ""
Next
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'----------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:Je mexcuse de l'oublie.
L'utilisateur doit avoir entré au moin une donné (il a choix de prendre
lesdéroulers de validation ou ce qu'il veut)
dans colonne B ou C ou les deux et si il oublie d'entré en E la macro
lui
impose.
merci
"michdenis" a écrit dans le message de
news:uu7$Bien, je me suis basé sur ceci issu de ton premier message :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entréune donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne."
Si je comprends bien, ce n'est pas seulement la colonne E mais B, C et
E
des lignes 18 à 37 qui doivent êtrerenseignées.
Est-ce que dans ces cellules, il y a un type de données particulières
où
si l'usager peut se permettre d'inscriren'importe quoi ?
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:%ReBonjour Michdenis
Ca fonctionne en partie , la macro copie bien dans l'autre feuille
Mais elle n'arrête pas même si l'utilisateur na rien entré dans les
deux
première colonne (B & C).
Elle doit coipier les ligne qui on une entrée dans B ou C.
Merci
"michdenis" a écrit dans le message de
news:%Bonjour Daniel,
Je n'ai pas tout compris ce que tu voulais, mais j'ai imbriqué les 2
procédures :
Tu copies ces 2 procédures dans un module standard, et tu appelles
seulement la procédure : Vérification()
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
Do
If C = "" Then
C.Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Value <> ""
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'-------------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" a écrit dans le message
de
news:Bien Bonjour Michdenis
1: **** ça se passe sur quelle feuille de calcul ?
sur la feuille ou il y a le bouton qui démar la macro
("Feuille_insp")
2: **** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façondoit-on mettre fin à la procédure, le cas échéant
Non il doit entrée une donné !! (ces ligne de code je voulait les
mettreparceque cela inserer la date et l'heure dans la colonne "L".
3: Dans la procédure 1 ces avec cela que je vérifie si
l'utilisateur
aoublier la colonne "E" sur chaqu'une des ligne .
Merci
"michdenis" a écrit dans le message de
news:Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas
oublier
d'entré une donné dans la colonne "E" et onl'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37
ièmeligne."**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façondoit-on mettre fin à la procédure, le cas échéant?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule
B18...Pourquoi ? Tu ne donnes pas l'explicationdans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi
cetest?
Salutations!
"Daniel Pelletier" a écrit dans le message
denews:Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas
oublier
d'entréune donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M)
suruneautre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première
macro.
En résumé la Macro vérifie si il y a une entré dans une des deux
premièrecolonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a
entréunedonné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", ,
"5000","2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" &
.Range("A65536").End(xlUp)(2).Row)Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Sub Vérification()
Dim Rg As Range, C As Range, A As Integer
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
If C.Offset(, 3) <> "" And C.Offset(, -2) <> "" Then
Do
If C = "" Then
C = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C <> ""
End If
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message de
news:%23a5zEJvWEHA.1380@TK2MSFTNGP09.phx.gbl...
Et non, je ne veut pas faire remplir tout les champ.
Je m'explique l'utilisateur si n'a pas entré de donné dans colonne B ou C
la
macro passe a la ligne suivante.
et si il a entré en C ou B ou les deux,
il faut que E est une donné avant de copier la ligne dans l'autre
feuille("Base").
Merci
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:uSh5q$uWEHA.1380@TK2MSFTNGP09.phx.gbl...
Bonjour Daniel,
Les 3 champs devront être rempli. Il pourra le faire en renseignant
directement la boîte de dialogue.
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range, A As Integer
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
For A = 3 To 1 Step -1
If A = 1 Then A = -1
Do
If C.Offset(, -A) = "" Then
C.Offset(, -A) = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If A = -1 And C.Offset(, -A) <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Offset(, -A) <> ""
Next
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'----------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message de
news:eG4ahduWEHA.1380@TK2MSFTNGP09.phx.gbl...
Je mexcuse de l'oublie.
L'utilisateur doit avoir entré au moin une donné (il a choix de prendre
les
déroulers de validation ou ce qu'il veut)
dans colonne B ou C ou les deux et si il oublie d'entré en E la macro
lui
impose.
merci
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:uu7$6VuWEHA.2176@TK2MSFTNGP11.phx.gbl...
Bien, je me suis basé sur ceci issu de ton premier message :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entré
une donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne."
Si je comprends bien, ce n'est pas seulement la colonne E mais B, C et
E
des lignes 18 à 37 qui doivent être
renseignées.
Est-ce que dans ces cellules, il y a un type de données particulières
où
si l'usager peut se permettre d'inscrire
n'importe quoi ?
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message de
news:%239pOQQuWEHA.1356@TK2MSFTNGP09.phx.gbl...
ReBonjour Michdenis
Ca fonctionne en partie , la macro copie bien dans l'autre feuille
Mais elle n'arrête pas même si l'utilisateur na rien entré dans les
deux
première colonne (B & C).
Elle doit coipier les ligne qui on une entrée dans B ou C.
Merci
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:%23q8oGvtWEHA.3200@TK2MSFTNGP09.phx.gbl...
Bonjour Daniel,
Je n'ai pas tout compris ce que tu voulais, mais j'ai imbriqué les 2
procédures :
Tu copies ces 2 procédures dans un module standard, et tu appelles
seulement la procédure : Vérification()
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
Do
If C = "" Then
C.Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Value <> ""
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'-------------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message
de
news:eijPvJtWEHA.3200@TK2MSFTNGP09.phx.gbl...
Bien Bonjour Michdenis
1: **** ça se passe sur quelle feuille de calcul ?
sur la feuille ou il y a le bouton qui démar la macro
("Feuille_insp")
2: **** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façon
doit-on mettre fin à la procédure, le cas échéant
Non il doit entrée une donné !! (ces ligne de code je voulait les
mettre
parceque cela inserer la date et l'heure dans la colonne "L".
3: Dans la procédure 1 ces avec cela que je vérifie si
l'utilisateur
a
oublier la colonne "E" sur chaqu'une des ligne .
Merci
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:u1evBvsWEHA.3340@TK2MSFTNGP10.phx.gbl...
Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas
oublier
d'entré une donné dans la colonne "E" et on
l'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37
ième
ligne."
**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façon
doit-on mettre fin à la procédure, le cas échéant
?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule
B18
...
Pourquoi ? Tu ne donnes pas l'explication
dans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi
ce
test
?
Salutations!
"Daniel Pelletier" <pellet15@videotron.ca> a écrit dans le message
de
news:erTRsDsWEHA.3944@tk2msftngp13.phx.gbl...
Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas
oublier
d'entré
une donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M)
sur
une
autre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première
macro.
En résumé la Macro vérifie si il y a une entré dans une des deux
première
colonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a
entré
une
donné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", ,
"5000",
"2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" &
.Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub
Sub Vérification()
Dim Rg As Range, C As Range, A As Integer
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
If C.Offset(, 3) <> "" And C.Offset(, -2) <> "" Then
Do
If C = "" Then
C = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C <> ""
End If
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
"Daniel Pelletier" a écrit dans le message de
news:%
Et non, je ne veut pas faire remplir tout les champ.
Je m'explique l'utilisateur si n'a pas entré de donné dans colonne B ou C
la
macro passe a la ligne suivante.
et si il a entré en C ou B ou les deux,
il faut que E est une donné avant de copier la ligne dans l'autre
feuille("Base").
Merci
"michdenis" a écrit dans le message de
news:uSh5q$Bonjour Daniel,
Les 3 champs devront être rempli. Il pourra le faire en renseignant
directement la boîte de dialogue.
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range, A As Integer
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
For A = 3 To 1 Step -1
If A = 1 Then A = -1
Do
If C.Offset(, -A) = "" Then
C.Offset(, -A) = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If A = -1 And C.Offset(, -A) <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Offset(, -A) <> ""
Next
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'----------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:Je mexcuse de l'oublie.
L'utilisateur doit avoir entré au moin une donné (il a choix de prendre
lesdéroulers de validation ou ce qu'il veut)
dans colonne B ou C ou les deux et si il oublie d'entré en E la macro
lui
impose.
merci
"michdenis" a écrit dans le message de
news:uu7$Bien, je me suis basé sur ceci issu de ton premier message :
"Dans la première macro, on vérifie si l'utilisateur n'a pas oublier
d'entréune donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne."
Si je comprends bien, ce n'est pas seulement la colonne E mais B, C et
E
des lignes 18 à 37 qui doivent êtrerenseignées.
Est-ce que dans ces cellules, il y a un type de données particulières
où
si l'usager peut se permettre d'inscriren'importe quoi ?
Salutations!
"Daniel Pelletier" a écrit dans le message de
news:%ReBonjour Michdenis
Ca fonctionne en partie , la macro copie bien dans l'autre feuille
Mais elle n'arrête pas même si l'utilisateur na rien entré dans les
deux
première colonne (B & C).
Elle doit coipier les ligne qui on une entrée dans B ou C.
Merci
"michdenis" a écrit dans le message de
news:%Bonjour Daniel,
Je n'ai pas tout compris ce que tu voulais, mais j'ai imbriqué les 2
procédures :
Tu copies ces 2 procédures dans un module standard, et tu appelles
seulement la procédure : Vérification()
'-------------------------------------------
Sub Vérification()
Dim Rg As Range, C As Range
With Worksheets("Feuille_insp")
.Unprotect
Set Rg = .Range("E18:E37")
For Each C In Rg
Do
If C = "" Then
C.Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& C.Row & vbNewLine _
& " saisissez la maintenant" _
& " ci-dessous", "PRIORITÉ est " & _
"obligatoire", "2000 ou 5000")
End If
If C <> "" Then
'Appel de l'autre procédure
CopierUnRange C.Offset(, -3).Resize(, 12)
End If
Loop Until C.Value <> ""
Next
.Protect
End With
Set Rg = Nothing: Set C = Nothing
End Sub
'-------------------------------------------
Sub CopierUnRange(Rg As Range)
Dim Rg1 As Range
With Worksheets("Base")
Set Rg1 = .Range("A" & .Range("A65536").End(xlUp)(2).Row)
Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
Set Rg1 = Nothing
End Sub
'-------------------------------------------
Salutations!
"Daniel Pelletier" a écrit dans le message
de
news:Bien Bonjour Michdenis
1: **** ça se passe sur quelle feuille de calcul ?
sur la feuille ou il y a le bouton qui démar la macro
("Feuille_insp")
2: **** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façondoit-on mettre fin à la procédure, le cas échéant
Non il doit entrée une donné !! (ces ligne de code je voulait les
mettreparceque cela inserer la date et l'heure dans la colonne "L".
3: Dans la procédure 1 ces avec cela que je vérifie si
l'utilisateur
aoublier la colonne "E" sur chaqu'une des ligne .
Merci
"michdenis" a écrit dans le message de
news:Bonjour Daniel,
Ta macro No1 manque un peu de précision :
"Dans la première macro, on vérifie si l'utilisateur n'a pas
oublier
d'entré une donné dans la colonne "E" et onl'oblige de la faire. Tous cela sur tout les ligne entre 18 et 37
ièmeligne."**** ça se passe sur quelle feuille de calcul ?
"et on l'oblige"
**** Suppose que l'utilisateur ne veut rien savoir ... de quelle
façondoit-on mettre fin à la procédure, le cas échéant?
Dans ta procédure No1, tu écris :
For C = 2 To 3
For L = 18 To 37
If Cells(L, C).Value <> "" Then
If Cells(L, 5) = "" Then
**** If Cells(L, C).Value <> "" représente un test sur la cellule
B18...Pourquoi ? Tu ne donnes pas l'explicationdans tes commentaires !
**** Même chose pour ceci : If Cells(l, 5) = "" Then : Pourquoi
cetest?
Salutations!
"Daniel Pelletier" a écrit dans le message
denews:Bonjour à tous
Je veut l'intégrer les deux macros en une seul.
Dans la première macro, on vérifie si l'utilisateur n'a pas
oublier
d'entréune donné dans la colonne "E"
et on l'oblige de la faire.
Tous cela sur tout les ligne entre 18 et 37 ième ligne.
Dans la deuxième macro on copie les valeur de la ligne (de B à M)
suruneautre feuille("Base").
Je voudrait copie les valeur sur les même ligne que la première
macro.
En résumé la Macro vérifie si il y a une entré dans une des deux
premièrecolonne et si il n'y a pas d'entré en "E" oblige l'utilisateur a
entréunedonné et puis copie chacune des ligne dans la feuille ("Base").
Merci pour votre aide :-)
Première MACRO
ActiveSheet.Unprotect
Dim l As Long, c As Integer, oblig As Label
ActiveSheet.Unprotect
oblig:
For c = 2 To 3
For l = 18 To 37
If Cells(l, c).Value <> "" Then
If Cells(l, 5) = "" Then
Range("E" & l).Value = InputBox( _
"Il manque une PRIORITE en sur la ligne " _
& l - 17 & vbNewLine _
& " saisissez la maintenant" _
& " ci dessous", "PRIORITÉ est obligatoire", ,
"5000","2000")
GoTo oblig
End If
End If
Next l
Next c
Deuxième MACRO
Sub CopierUnRange()______
Dim Rg As Range, Rg1 As Range
With Worksheets("Feuille_insp")
If .Range("E18") <> "" Then
Set Rg = .Range("B18:m18")
With Worksheets("Base")
Set Rg1 = .Range("A" &
.Range("A65536").End(xlUp)(2).Row)Rg.Copy Rg1
Rg1.Resize(Rg.Rows.Count, Rg.Columns.Count) = Rg.Value
End With
End If
End With
Set Rg = Nothing: Set Rg1 = Nothing
End Sub