Problème avec "If Not isFileOpen(valeur) Then"
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
mon problème : j'ai un message "erreur de compilation" sub ou function ne définie.
l'idée est de la macro en vba :
à partir d'une macro en VBA, copier la première ligne d'une feuille Excel et la coller dans un nouveau classeur. ensuite, rechercher dans le fichier initial les lignes dont le contenu de la premières cellule sont identiques, les coller dans le deuxième fichier à la suite de la 1ère ligne. Ne pas supprimer les doublons. Créer un nouveau fichier à chaque nouveauté et l'enregistrer avec le nom contenu dans la cellule A2.
merci pour votre aide
Windows / Chrome 110.0.0.0
4 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
Difficile de t'aider si tu ne nous montres pas le code qui provoque cette erreur.
Tiens compte de ceci quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
-
bonjour
je n'ai pas trouvé vba pour coller la macro
désolé
le problème est au niveau de cette ligne :
'vérifier si le fichier a déjà été créé pour cette valeur
If Not isFileOpen(valeur) ThenSub copiercoller() Dim wb As Workbook Dim ws As Worksheet Dim wb2 As Workbook Dim ws2 As Worksheet Dim nom As String Dim i As Long Dim j As Long 'ouvrir le classeur actif Set wb = ActiveWorkbook 'ouvrir la première feuille Set ws = wb.Sheets(1) 'copier la première ligne ws.Rows(1).Copy 'créer un nouveau classeur Set wb2 = Workbooks.Add 'ouvrir la première feuille Set ws2 = wb2.Sheets(1) 'coller la première ligne ws2.Range("A1").PasteSpecial xlPasteAll 'trouver le dernier numéro de ligne de la première feuille lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row 'parcourir chaque ligne de la première feuille For i = 2 To lastRow 'récupérer la valeur de la première cellule de la ligne valeur = ws.Cells(i, 1).Value 'vérifier si le fichier a déjà été créé pour cette valeur If Not isFileOpen(valeur) Then 'créer un nouveau classeur avec le nom de la valeur nom = ws.Cells(i, 2).Value Set wb2 = Workbooks.Add Set ws2 = wb2.Sheets(1) 'coller la première ligne ws.Rows(1).Copy ws2.Range("A1").PasteSpecial xlPasteAll 'sauvegarder le fichier wb2.SaveAs nom 'fermer le fichier wb2.Close End If 'ouvrir le fichier correspondant à la valeur Set wb2 = Workbooks.Open(ws.Cells(i, 2).Value) Set ws2 = wb2.Sheets(1) 'trouver la dernière ligne lastrow2 = ws2.Cells(ws2.Rows.Count, 1).End(xlUp).Row 'coller la ligne à la suite ws.Rows(i).Copy ws2.Range("A" & lastrow2 + 1).PasteSpecial xlPasteAll 'fermer le fichier wb2.Close Next i End Sub -
je la déclare sous quelle caractéristique au début de la macro ?
dim ???
merci pour ton aide
-