Suppression colonnes macro

Bonjour

J'ai une macro qui permet de créer plusieurs fichiers à partir d'un seul.

Idéalement je veux qu'après que la macro ait fini de rompre les liaisons, qu'elle puisse supprimer les colonnes A et B deux derniers onglets.

Ci-joint le dernier bout de la macro.

Merci d'avance !

On Error GoTo 0

lks = CC.LinkSources(1)

If Not IsEmpty(lks) Then

For i = 1 To UBound(lks)

CC.BreakLink Name:=lks(i), Type:=xlExcelLinks

Next i

End If

CC.Close SaveChanges:=True

Workbooks.Open chemin & wk2

End If

Next n

Application.ScreenUpdating = True

Application.DisplayAlerts = False

End Sub

bonjour,

un proposition

    sc = Sheets.Count
    For i = sc - 1 To sc
        With Sheets(i)
            .Columns("A:B").Delete shift:=xlToLeft
        End With
    Next i

merci mais j'ai un message d'erreur "variable non définie"..sur le sc =

bonjour,

hé bien il te suffit de la définir

dim sc

il met erreur de syntaxe...

re-bonjour,

montre-moi toute la macro y compris le code que j'ai proposé et l'instruction dim

Option Explicit

Sub Archiver()

Dim wk1 As Workbook, CC As Workbook

Dim wk2 As String, chemin As String, extension As String, Pays As String

Dim i As Integer, n As Integer

Dim lks As Variant

Application.DisplayAlerts = False

chemin = ThisWorkbook.Path & "\"

Set wk1 = ThisWorkbook

wk2 = "Pays test macro.xlsx"

extension = ".xlsx"

Application.ScreenUpdating = False

For n = 4 To 6 'adapter à la plage de cellules Nom de pays

Pays = wk1.Sheets("Feuil1").Range("A" & n) 'adapter à la plage de cellules Nom de pays

If Pays <> "" Then

Workbooks(wk2).Sheets("E2258_1").Range("A6") = Pays

Workbooks(wk2).SaveAs Filename:=chemin & "Test_" & Pays & extension, FileFormat:=51

Set CC = Workbooks("Test_" & Pays & extension)

On Error Resume Next

CC.ActiveSheet.DrawingObjects(1).Delete

On Error GoTo 0

lks = CC.LinkSources(1)

If Not IsEmpty(lks) Then

For i = 1 To UBound(lks)

CC.BreakLink Name:=lks(i), Type:=xlExcelLinks

Next i

End If

CC.Close SaveChanges:=True

Workbooks.Open chemin & wk2

End If

Next n

Application.ScreenUpdating = True

Application.DisplayAlerts = False

Dim sc = Sheets.Count

For i = sc - 1 To sc

With Sheets(i)

.Columns("A:B").Delete shift:=xlToLeft

End With

Next i

End Sub

Désolée je suis vraiment débutante

J'ai essayé Dim sc As Sheets.Count mais ça ne marche pas

bonsoir,

voici une correction

Option Explicit
Sub Archiver()
    Dim wk1 As Workbook, CC As Workbook
    Dim wk2 As String, chemin As String, extension As String, Pays As String
    Dim i As Integer, n As Integer
    Dim lks As Variant
    Dim sc

    Application.DisplayAlerts = False

    chemin = ThisWorkbook.Path & "\"
    Set wk1 = ThisWorkbook
    wk2 = "Pays test macro.xlsx"
    extension = ".xlsx"

    Application.ScreenUpdating = False

    For n = 4 To 6    'adapter à la plage de cellules Nom de pays
        Pays = wk1.Sheets("Feuil1").Range("A" & n)    'adapter à la plage de cellules Nom de pays
        If Pays <> "" Then
            Workbooks(wk2).Sheets("E2258_1").Range("A6") = Pays
            Workbooks(wk2).SaveAs Filename:=chemin & "Test_" & Pays & extension, FileFormat:=51
            Set CC = Workbooks("Test_" & Pays & extension)

            On Error Resume Next
            CC.ActiveSheet.DrawingObjects(1).Delete

            On Error GoTo 0
            lks = CC.LinkSources(1)
            If Not IsEmpty(lks) Then
                For i = 1 To UBound(lks)
                    CC.BreakLink Name:=lks(i), Type:=xlExcelLinks
                Next i
            End If

            CC.Close SaveChanges:=True
            Workbooks.Open chemin & wk2
        End If
    Next n

    sc = Sheets.Count
    For i = sc - 1 To sc
        With Sheets(i)
            .Columns("A:B").Delete shift:=xlToLeft
        End With
    Next i

    Application.ScreenUpdating = True
    Application.DisplayAlerts = False

End Sub

merci mais ça ne marche toujours pas. ça me donne le message d'erreur:

erreur de compilation: variable non définie

merci pour ton aide


pardon j'ai répondu trop vite

la macro marche mais ne me supprime pas les colonnes A et B des deux derniers onglets...

bonsoir,

dans quel classeur faut-il supprimer les 2 onglets ?

Bonjour

il faut supprimer les colonnes A et B dans les fichiers créés donc le fichier test_pays..

merci

Hajar

bonjour,

essaie ceci,

sc = wk2.Sheets.Count
    For i = sc - 1 To sc
        With wk2.Sheets(i)
            .Columns("A:B").Delete shift:=xlToLeft
        End With
    Next i

si cela ne fonctionne pas, merci de mettre tes fichiers

bonjour

il me met qualificateur incorrect

re-bonjour,

with  workbooks(wk2)
sc =.Sheets.Count
    For i = sc - 1 To sc
        With .Sheets(i)
            .Columns("A:B").Delete shift:=xlToLeft
        End With
    Next i
end with
 

merci

nouveau message d'erreur

l'indice n'appartient pas à la sélection

C'est pas grave je laisse tomber

merci pour votre aide

Cdt

Hajar

bonjour,

ce serait tellement plus simple d'aider les gens qui posent une question s'ils fournissaient l'info demandée...

bonjour

j'ai bien exprimé ma demande mais il doit avoir un bug avec ma macro.

désolée je ne suis que débutante et j'apprécie votre aide je vous ai communiqué les messages d'erreur que j'obtenais..

Cdt

Hajar

rebonjour

extrait d'un de mes messages précédents

si cela ne fonctionne pas, merci de mettre tes fichiers

https://forum.excel-pratique.com/annonces/explications-et-regles-a-respecter-t13.html

bonne journée

Rechercher des sujets similaires à "suppression colonnes macro"