Aller au contenu

liliv

Membres
  • Compteur de contenus

    3
  • Inscription

  • Dernière visite

Autres informations

  • Mes langues
    Français,anglais (un peu)

liliv's Achievements

Junior Member

Junior Member (3/12)

0

Réputation sur la communauté

  1. liliv

    excel

    Voici le code de la macro: Sub Macro1() Dim NomFeuil Dim NumLign 'Définit le type de variables. Ce n'est pas nécessaire, mais ça fait plus mieux ! 'Les lignes qui suivent vont supprimer les feuilles de mouvement qui existent déjà Sheets("mouvements").Activate Range("a1").Activate 'on sélectionne la feuille qui contient les noms des mouvements 'on crée une boucle qui recherche tous les noms; il exécute cette boucle jusqu'à ce que 'il rencontre une celluile vide Do Until ActiveCell.Value = "" NomFeuil = ActiveCell.Value 'le contenu de la cellule est "copié" dans la variable NomFeuil Sheets(NomFeuil).Select Application.DisplayAlerts = False ActiveWindow.SelectedSheets.Delete Application.DisplayAlerts = True 'sélectionne la feuille correspondante et la supprime (en empêchant le message de 'confirmation d'apparaître) Sheets("mouvements").Activate 'revient à la feuille "mouvements" ActiveCell.Delete 'supprime le contenu de la cellule active ActiveCell.Offset(1, 0).Activate 'se met sur la cellule du dessous Loop 'revient au début de la boucle Sheets("Feuil1").Select 'Sélectionne la feuille ("Feuil1") (tu peux renommer cette feuille, 'mais alors, tu dois renommer tous les "Feuil1" de cette macro NumLign = 1 ' variable du n° de la ligne (si tu veux commencer à une autre ligne, tu mets le n° correspondant) Cells(NumLign, 1).Activate 'sélectionne la cellule de la 1ère ligne de la 1ère colonne (si tu veux commencer 'à la colonne "b", tu remplaces 1 par 2 ou c = 3 .... Do While ActiveCell.Value <> "" ' ouvre une boucle et l'exécute tant que la cellule sélectionnée n'est pas vide NomFeuil = Cells(NumLign, 2).Text ' variable contenant le nom (où le nom se trouve dans 'la colonne "b" (= 2); si il se trouvait dans la colonne "c", 'remplaces 2 par 3, ... Sheets("mouvements").Activate Range("a1").Activate Do Until ActiveCell.Value = "" 'vérifie dans la feuille "mouvements" si le nom du mouvement existe déjà If ActiveCell.Value = NomFeuil Then Sheets(NomFeuil).Activate GoTo 1 'Si le nom existe déjà, active la feuille correspondante 'et va à la ligne 1 Else: ActiveCell.Offset(1, 0).Select 'sinon, il va sur la cellule d'en-dessous pour vérifier son contenu End If Loop ActiveCell.Offset.Value = NomFeuil 'si il n'a pas trouvé le nom, il l'ajoute et crée la feuille correspondante Sheets.Add ActiveSheet.Name = NomFeuil 1 Sheets("Feuil1").Activate ActiveCell.EntireRow.Copy 'sélectionne la ligne où se trouve la cellule active et fait un "copy" Sheets(NomFeuil).Select ActiveSheet.Paste 'colle la ligne ActiveCell.Offset(1, 0).Select 'va à la cellule du dessous Sheets("Feuil1").Activate 'revient à la "Feuil1" NumLign = NumLign + 1 'incrémente la variable de 1 Cells(NumLign, 1).Activate Loop End Sub
  2. liliv

    excel

    Je suis en train de chercher la soluce .
  3. liliv

    excel

    Oui, il y a moyen avec une macro de déplacer les lignes dans des autres feuilles. Tu crées une boucle qui s'exécute tant que la 1ère cellule de la ligne sélectionnée(exemple: ax (où x est le n° de la ligne)) n'est pas vide; tu lui dit de créer une feuille du nom du contenu de la cellule (de la colonne C ?) sauf si cette feuille existe déjà (-> faire une vérif); tu reviens à la cellule de départ (a1); tu fais une sélection de cette cellule jusqu'à la cellule non vide; tu fais un "copier" de cette ligne; tu sélectionne la feuille où tu veux "coller" les infos; tu lui dit d'aller à la 1ère cellule de la line en dessous qui doit contenir des données; tu incrtémentes x + 1 tu reviens à ta feuille de départ tu ferme la boucle normalement, comme tu à incrémenté de 1, il va se mettre sur la cellule a2 (a(x+1)) Pour "prise", soit tu fais une formule "manuellement" dans ton tableau (genre si c1 = "prise" alors nbre négatif), soit tu l'inclus dans la macro (alors, tu vérifies le contenu de la cellule). Ce n'est pas compliqué à éaliser, mais difficile à expliquer par écrit. J'espère n'avoir pas été trop compliqué ?!
×
×
  • Créer...