Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Boucles imbriquées et génération de classeur

  • Initiateur de la discussion Initiateur de la discussion Rafilo13
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Rafilo13

XLDnaute Junior
Bonjour à tous,

Un problème sur lequel je me casse la tête depuis de nombreuses heures. Si certains d'entre vous ont une idée sur le sujet je suis preneur

J'ai créer un petit programme qui à pour but créer autant de classeur que ligne afin de pouvoir le diffuser de manière individuelle.
Je fais en sorte de pouvoir choisir l'onglet du classeur en question (Afin de me positionner sur le bon mois) et je souhaite tous simplement les enregistrer dans le même répertoire que le fichier source.

J'ai pris le parti de copier a chaque fois la feuille complète dans un classeur en la renommant du nom du commercial à qui je vais diffuser le classeur, puis je souhaitais expurger le fichier des lignes qui ne correspondaient pas au commercial en question. seul problème cela marche bien pour le premier mais après la boucle pour supprimer ne marche pas ....

J'ai beau essayé dans tous les sens rien.

J'ai fais un fichier exemple.

Merci par avance pour votre aide !


VB:
Sub suppression()

Dim mav As Variant
Dim Chemin As String
Dim i As Integer
Dim j As Integer
Dim b As Variant
Dim c As Variant

Chemin = ActiveWorkbook.Path & Application.PathSeparator
mav = InputBox("rentrer nom feuile", "nom feuile")


With ThisWorkbook.Sheets(mav)

             For i = .Range("B" & .Rows.Count).End(xlUp).Row To 6 Step -1

b = .Range("C" & i).Value
c = .Range("e" & i).Value

Sheets(mav).Select
Sheets(mav).Copy
ActiveWorkbook.SaveAs Filename:=Chemin & b & " " & c & ".xlsx"


For j = 6 To 50

If Cells(j, 3).Value <> b Then
Cells(j, 3).entireraw.Delete

End If

Next j


Next i

End With


End Sub
 

Pièces jointes

Bonsoir Rafilo,
Il y a une erreur de syntaxe sur la ligne :
Cells(j, 3).entireraw.Delete
au lieu de
Cells(j, 3).EntireRow.Delete
( quand VBA reconnait un mot clé il mets des majuscules, sinon il laisse tel quel )
Ceci dit ce n'est peut être pas la seule. Mais il vaut mieux y aller step by step.
 
Bonjour tous,
Je viens de faire alors je mets . . .
J'ai ajouté un onglet Tempo (c'est une copie de l'onglet)
Après ca roule
Bruno

VB:
Sub creation_classeur()
onglet = InputBox("rentrer nom feuille", "nom feuille")
With Sheets(onglet)
Application.ScreenUpdating = False
 For lig = 6 To .[C65000].End(3).Row
  Sheets("Tempo").[A5:AK8].ClearContents
   Sheets("Tempo").[A5:AK5].Value = .Range("A" & lig & ":AK" & lig).Value
     Sheets("Tempo").Copy
       ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & .Range("C" & lig) & ".xlsx"
        ActiveWorkbook.Close (False)
 Next
Application.ScreenUpdating = True
End With
End Sub
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
235
Réponses
4
Affichages
177
Réponses
8
Affichages
233
Réponses
3
Affichages
193
Réponses
2
Affichages
153
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
169
Réponses
11
Affichages
229
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…