fitzjames
Messages postés55Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention27 février 2009
-
20 juil. 2005 à 12:00
fitzjames
Messages postés55Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention27 février 2009
-
22 juil. 2005 à 13:19
Bonjour,
Je suis sur excel 2003, et j'ai un problème sur mes boucle for ...next. Ma macro doit mettre à jour à partir d'une liste mes feuilles si le numéro dans la liste ne correspond pas elle crée une nouvelle feuille et fait les mises à jour.
Le problème est qu'elle trouve la feuille, la met à jour et en créé une nouvelle.
Mes feuilles de calcul sont triés en fonction de leurs position dans la liste.
Private Sub CommandButton3_Click()
Dim name As String
Dim Found As Integer
For i = Find_LC("Titres") + 1 To TotalChantier() + 6
Worksheets("Liste des Chantiers").Activate
name = Worksheets("Liste des Chantiers").Range(Find_LC("ColNumero") & i)
Found = 0
For j = 5 To Sheets.Count
If Worksheets(j).name = name Then
Found = 1
sheetname = ActiveSheet.name
Mise2
Worksheets(sheetname).Activate
If Found = 1 Then
Exit For
End If
Else
If Found = 0 Then
'MsgBox ("test")
new_sheet
Mise3
Found = 1
If Found = 1 Then
Exit For
End If
End If
End If
Next j
Next i
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 20 juil. 2005 à 15:38
Salut,
Essaie ça :
Dim name As String
Dim Found As Integer
For i = Find_LC("Titres") + 1 To TotalChantier() + 6
Worksheets("Liste des Chantiers").Activate
name = Worksheets("Liste des Chantiers").Range(Find_LC("ColNumero") & i)
Found = 0
For j = 5 To Sheets.Count
If Worksheets(j).name = name Then
Found = 1
sheetname = ActiveSheet.name
Mise2
Worksheets(sheetname).Activate
End If
Next j
If Found = 0 Then
'MsgBox ("test")
new_sheet
Mise3
End If
Next i
-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
fitzjames
Messages postés55Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention27 février 20091 22 juil. 2005 à 13:19
Bonjour,
c pas moi qui est fait c macros je les ai récuperées dans un autre fichier :
*******************************************************************
Function Find_LC(name As String)
' Permet de récupérer la colonne d'un titre de colonne passé en paramètre (déclaré dans la feuille de paramètres).
' Exemple : Find_LC("Domaine") renvoie B => la colonne B s'intitule "Domaine"
' Permet de récupérer la ligne des titres dans l'onglet "Liste des chantiers"
' Exemple : Find_LC("Titres") renvoie 6 => la ligne 6 contient les titres des colonnes
Dim chemin As String
Dim cellule As String
Dim feuille As String
'Recupere la valeur d'un nom prédéfini
chemin = Mid(ActiveWorkbook.Names(name).Value, 2)
feuille = Left(chemin, InStr(chemin, "!") - 1)
cellule = Mid(chemin, InStr(chemin, "!") + 1)
Find_LC = Worksheets(feuille).Range(cellule).Value
End Function
********************************************************************
Function TotalChantier()
' Permet de connaitre le nombre total de chantiers
Dim j As Integer
j = 0
For i = 1 To Sheets.Count
If Worksheets(i).Cells(3, 2).Value = "Architecte :" And Worksheets(i).name <> "Modèle" Then
j = j + 1
End If
Next i
TotalChantier = j
End Function
*********************************************************************
Ceux sont des paramètres qui se trouve dans une feuille de calcul
"Titres" = 7
"ColNumero"= E qui Correspond à la position de colonne dans la liste
J'espère que c plus explicite
Merci encore
[?] Estelle[8D]
fitzjames
Messages postés55Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention27 février 20091 21 juil. 2005 à 12:54
Bonjour,
Merci pour la mise à jour de mes Feuilles la macro marche inpec il ne me créé plus de nouvelle feuille mais si je créé une ligne dans ma liste il ne me créer pas de nouvelle feuille. il ne passe pas dans la boucle :
If Found = 0 Then
'MsgBox ("test")
new_sheet
Mise3
End If
merci d'avance
[?] Estelle[8D]
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 21 juil. 2005 à 15:01
Si ça ne passe pas dans cette boucle, c'est que les feuilles existent déjà ou qu'il y a un problème au niveau de :
For i = Find_LC("Titres") + 1 To TotalChantier() + 6
Worksheets("Liste des Chantiers").Activate
name = Worksheets("Liste des Chantiers").Range(Find_LC("ColNumero") & i)
comme je ne sais pas ce que renvoient Find_LC("Titres"), TotalChantier() et Find_LC("ColNumero"), je ne peux pas te dire.
-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?