Code VBA - SOS !!!
Fermé
Noemi
-
Modifié le 6 déc. 2020 à 15:33
yg_be Messages postés 23335 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 novembre 2024 - 6 déc. 2020 à 19:50
yg_be Messages postés 23335 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 novembre 2024 - 6 déc. 2020 à 19:50
A voir également:
- Code VBA - SOS !!!
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
6 réponses
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
Modifié le 6 déc. 2020 à 17:06
Modifié le 6 déc. 2020 à 17:06
Bonjour,
comme ceci:
voilà
comme ceci:
Option Explicit Sub boucle() Dim i As Integer Dim FL1 As Worksheet, NoCol As Integer Dim NoLig As Long, Var As Variant, cherche cherche = Worksheets("Saisies").Range("B2").Value NoCol = 2 'lecture de la colonne B For i = 4 To 15 'feuilles Set FL1 = Worksheets(Worksheets(i).Name) For NoLig = 2 To 37 'colonne B Var = FL1.Cells(NoLig, NoCol) If Var = cherche Then Worksheets("Saisies").Range("B2:S2").Copy _ Destination:=FL1.Cells(NoLig, 2) End If Next Next End Sub
voilà
ça ne fonctionne pas...
Set FL1 = Worksheets(Worksheets(i).Name)
erreur d'exécution '9'
L'indice n'appartient pas à la sélection
Set FL1 = Worksheets(Worksheets(i).Name)
erreur d'exécution '9'
L'indice n'appartient pas à la sélection
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
6 déc. 2020 à 18:04
6 déc. 2020 à 18:04
La boucle se fait de la feuille 4 a la 15 vérifier si cela est possible
Dim i As Integer
Dim FL1 As Worksheet, NoCol As Integer
Dim NoLig As Long, Var As Variant, cherche
cherche = Worksheets("Saisies").Range("B2").Value
NoCol = 2 'lecture de la colonne B
For i = 4 To 15 'feuilles
Set FL1 = Worksheets(Worksheets(i).Name)
For NoLig = 2 To 37 'colonne B
Var = FL1.Cells(NoLig, NoCol)
If Var = cherche Then
Worksheets("Saisies").Range("B2:U2").Copy _
Destination:=FL1.Cells(NoLig, 2)
End If
Next
Next
ce code là fonctionne !! =) =)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
par contre quand je l'intègre à ma macro ça ne fonctionne plus ?
je ne l'ai pas mis au bon endroit ?
je ne l'ai pas mis au bon endroit ?
Sub RemplirTableauSaisie()
'enlever la protection de la feuille
Sheets("Saisies").Select
ActiveSheet.Unprotect
'créer une nouvelle ligne
Range("A2").Select
Selection.ListObject.ListRows.Add (1)
'remplir le tableau saisie
Sheets("Formulaire").Select
Range("A78:U78").Select
Selection.Copy
Sheets("Saisies").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Dim i As Integer
Dim FL1 As Worksheet, NoCol As Integer
Dim NoLig As Long, Var As Variant, cherche
cherche = Worksheets("Saisies").Range("B2").Value
NoCol = 2 'lecture de la colonne B
For i = 4 To 15 'feuilles
Set FL1 = Worksheets(Worksheets(i).Name)
For NoLig = 2 To 37 'colonne B
Var = FL1.Cells(NoLig, NoCol)
If Var = cherche Then
Worksheets("Saisies").Range("B2:U2").Copy _
Destination:=FL1.Cells(NoLig, 2)
End If
Next
Next
'proteger feuille
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
'revenir sur le formulaire
Sheets("Formulaire").Select
Range("A1").Select
'masquer les lignes
Rows("9:1000").Select
Selection.EntireRow.Hidden = True
'afficher les lignes des catégories
Rows("1:8").Select
Selection.EntireRow.Hidden = False
'explications
Range("A9:K11").Select
ActiveCell.FormulaR1C1 = ""
'affichage de la catégorie
Range("I1:L1").Select
ActiveCell.FormulaR1C1 = ""
Range("B12").Select
ActiveCell.FormulaR1C1 = "=R[4]C"
Range("D12").Select
ActiveCell.FormulaR1C1 = "=R[4]C"
Range("F12").Select
ActiveCell.FormulaR1C1 = "=R[4]C"
Range("H12").Select
ActiveCell.FormulaR1C1 = "=R[4]C"
Range("J12").Select
ActiveCell.FormulaR1C1 = "=R[4]C"
Range("L12").Select
ActiveCell.FormulaR1C1 = "=R[4]C"
Range("L16").Select
Range("A15:C15").ClearContents
Range("D15").ClearContents
Range("A18").ClearContents
Range("F21:I21").ClearContents
Range("A23:C23").ClearContents
Range("A25:C25").ClearContents
Range("A27:C27").ClearContents
Range("A29:C29").ClearContents
Range("A31:C31").ClearContents
Range("A33:C33").ClearContents
Range("A35:C35").ClearContents
Range("A37:C37").ClearContents
Range("A39:C39").ClearContents
Range("A41:C41").ClearContents
Range("A43:C43").ClearContents
Range("A45:C45").ClearContents
Range("A47:C47").ClearContents
Range("A49:C49").ClearContents
Range("A51:C51").ClearContents
Range("A53:C53").ClearContents
Range("A55:C55").ClearContents
Range("C57").ClearContents
Range("C57").ClearContents
Range("E59").ClearContents
Range("E62").ClearContents
Range("F57:I57").ClearContents
Range("A72:N72").ClearContents
' EffacerContenuTableau Macro
Rows("78:78").Select
Selection.ClearContents
End Sub
en faite, ça ne marche pas que pour novembre et décembre... les autres mois ça fonctionne
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
>
Noemi
6 déc. 2020 à 18:57
6 déc. 2020 à 18:57
Content que cela fonctionne
Il faut mettre les déclarations de variables au début de la sub comme ceci:
Si cela convient marquer comme résolu au début de la demande
@+ Le Pivert
Il faut mettre les déclarations de variables au début de la sub comme ceci:
Sub RemplirTableauSaisie() Dim i As Integer Dim FL1 As Worksheet, NoCol As Integer Dim NoLig As Long, Var As Variant, cherche
Si cela convient marquer comme résolu au début de la demande
@+ Le Pivert
6 déc. 2020 à 19:50
pourquoi pas: