Conflit de compilation
scorpmax24
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, je suis actuellement en train de me torturer la tête sur une macro pour le boulot.
j'ai repris un fichier Excel sur lequel j'ai juste une mise à jour à faire.
je souhaite copier deux colonnes supplémentaires via un bouton.
voici la macro :
Au niveau des lignes qui suivent, j'ai un problème car lorsque que j'essaye ma macro la ligne "Sub BouclerColonne()" apparait en jaune et j'ai le message "erreur de compilation, variable de contrôle for déjà utilisée. les lignes que jai ajouté sont celles qui suivent :
merci de votre aide
j'ai repris un fichier Excel sur lequel j'ai juste une mise à jour à faire.
je souhaite copier deux colonnes supplémentaires via un bouton.
voici la macro :
Sub BouclerColonne()
Dim MaListe As ListObject 'As ListColumn
Dim MonArchive As ListObject
Dim cel As Range, OT As Range
Dim Z As Integer
Dim A As Integer
Dim MaCellule As Variant
Dim MaPlage As Range
Set MaListe = Sheets("EnCours").ListObjects("Tbl_EnCours")
Set MonArchive = Sheets("Archives").ListObjects("Tbl_Archives")
' MISE A JOUR COMMENTAIRE
Sheets("EnCours").Select
Range("Tbl_EnCours[[#Headers],[N° Ordre Client]]").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("Archives").Select
Range("Tbl_Archives[[#Headers],[N° Ordre Client]]").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
For Each cel In MaListe.ListColumns("Commentaire du Jour").DataBodyRange.Cells
If MaListe.ListColumns("Information de la veille").DataBodyRange.Cells(cel.Row - 2).Value <> "" Then
If cel.Value = "" Or IsNull(cel.Value) Then
cel.Value = MaListe.ListColumns("Information de la veille").DataBodyRange.Cells(cel.Row - 2).Value
Else
cel.Value = cel.Value & " - " & MaListe.ListColumns("Information de la veille").DataBodyRange.Cells(cel.Row - 2).Value
End If
For Each cel In MaListe.ListColumns("Date / heure montage").DataBodyRange.Cells
If MaListe.ListColumns("Type montage").DataBodyRange.Cells(cel.Row - 2).Value <> "" Then
If cel.Value = "" Or IsNull(cel.Value) Then
cel.Value = MaListe.ListColumns("Type montage").DataBodyRange.Cells(cel.Row - 2).Value
Else
cel.Value = cel.Value & " - " & MaListe.ListColumns("Type montage").DataBodyRange.Cells(cel.Row - 2).Value
End If
End If
MonOT = MaListe.ListColumns("N° Ordre Client").DataBodyRange.Cells(cel.Row - 2).Value
For Each OT In MonArchive.ListColumns("N° Ordre Client").DataBodyRange.Cells
If OT.Value = MonOT Then
MonArchive.ListRows(OT.Row - 1).Delete
Exit For
End If
Next
' If Not IsEmpty(cel.Value) Then 'cel.Value <> "" Or Not IsNull(cel.Value) Or
' MonArchive.ListRows.Add (1)
'
' MonOT = MaListe.ListColumns("N° Ordre Client").DataBodyRange.Cells(cel.Row - 2).Value
'
' End If
'MsgBox cel.Address & " : " & CStr(cel.Value)
Next cel
NbLignes = MaListe.DataBodyRange.Rows.Count
NbLignesInit = MonArchive.DataBodyRange.Rows.Count
With MonArchive
.Resize .Range.Resize(NbLignesInit + NbLignes, .Range.Columns.Count)
LastCol = .Range.Columns.Count
End With
MaListe.DataBodyRange.Copy
MonArchive.DataBodyRange.Cells(NbLignesInit + 1, 1).PasteSpecial (xlPasteValues)
Sheets("Archives").Select
Worksheets("Archives").Columns(LastCol + 1).Delete
Sheets("EnCours").Select
Range("I1").Select
MsgBox "Votre archivage s'est bien effectué. Vous pouvez enregistrer puis fermer où refaire une extraction OMS"
End Sub
Au niveau des lignes qui suivent, j'ai un problème car lorsque que j'essaye ma macro la ligne "Sub BouclerColonne()" apparait en jaune et j'ai le message "erreur de compilation, variable de contrôle for déjà utilisée. les lignes que jai ajouté sont celles qui suivent :
For Each cel In MaListe.ListColumns("Date / heure montage").DataBodyRange.Cells
If MaListe.ListColumns("Type montage").DataBodyRange.Cells(cel.Row - 2).Value <> "" Then
If cel.Value = "" Or IsNull(cel.Value) Then
cel.Value = MaListe.ListColumns("Type montage").DataBodyRange.Cells(cel.Row - 2).Value
Else
cel.Value = cel.Value & " - " & MaListe.ListColumns("Type montage").DataBodyRange.Cells(cel.Row - 2).Value
End If
merci de votre aide
A voir également:
- Conflit de compilation
- Breach compilation c'est quoi - Guide
- L'application n'a pas été installée, car le package est en conflit avec un package déjà présent. - Forum Téléphones & tablettes Android
- Erreur de compilation projet ou bibliothèque introuvable ✓ - Forum VB / VBA
- Conflit adresse ip ✓ - Forum Réseaux sociaux
- La requête n'a pas pu être traitée en raison d'un conflit d'accès à la ressource demandée. ✓ - Forum Mozilla Firefox
2 réponses
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 586
bonjour,
dans l'extrait suivant:
le premier
donc "variable de contrôle for déjà utilisée"
si tu veux imbriquer les
dans l'extrait suivant:
For Each cel In MaListe.ListColumns("Commentaire du Jour").DataBodyRange.Cells
If MaListe.ListColumns("Information de la veille").DataBodyRange.Cells(cel.Row - 2).Value <> "" Then
If cel.Value = "" Or IsNull(cel.Value) Then
cel.Value = MaListe.ListColumns("Information de la veille").DataBodyRange.Cells(cel.Row - 2).Value
Else
cel.Value = cel.Value & " - " & MaListe.ListColumns("Information de la veille").DataBodyRange.Cells(cel.Row - 2).Value
End If
For Each cel In MaListe.ListColumns("Date / heure montage").DataBodyRange.Cells
le premier
for each celest toujours en cours, et tu fais un second
for eachavec également cel.
donc "variable de contrôle for déjà utilisée"
si tu veux imbriquer les
for each, ce qui est parfaitement autorisé, il faut utiliser deux variables différentes, donc pas deux fois "cel".