Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/12/2011, 16h59   #1
 
Inscription : avril 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 10
Points : -1
Points : -1
Par défaut Ajout de lignes sous conditions

Bonjour à tous, je voudrais rendre automatique une macro qui ajoute une ligne sous la cellule active, tout cela dans un tableau et la condition est la saisie d'une valeur dans une des cellules de l'anvant dernière ligne, je ne suis pas douer en VBA, j'ai donc trouvé celle dans mon exemple, mais je ne serai pas la modifier.
Si quelqu’un a un peu de temps à me consacrer ?
Fichiers attachés
Type de fichier : zip Test.zip (13,8 Ko, 4 affichages)
pheonix00fr est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 08/12/2011, 18h02   #2
Membre régulier
 
Homme
Developpeur
Inscription : novembre 2011
Messages : 83
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire (Rhône Alpes)

Informations professionnelles :
Activité : Developpeur
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2011
Messages : 83
Points : 87
Points : 87
Par défaut SDISPRO

Salut,

Si j'ai bien compris ta demande, tu souhaite que des bordures en ligne 11 se mettent si la ligne 10 est remplie...

Si cela est ton souhait ne passe pas par du VB mais par une mise en forme conditionnel.

A+
sdispro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 18h09   #3
 
Inscription : avril 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 10
Points : -1
Points : -1
Bonjour, non pour la premier fois oui mais ensuite si je saisie une valeur dans la ligne crée, il faut en ajouter une autre ainsi de suite.
pheonix00fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 18h13   #4
Membre régulier
 
Homme
Developpeur
Inscription : novembre 2011
Messages : 83
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire (Rhône Alpes)

Informations professionnelles :
Activité : Developpeur
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2011
Messages : 83
Points : 87
Points : 87
Par défaut SDISPRO

Il faut passer une MFC via une formule, tu glissera ensuite la formule de ta MFC jusqu'à bon te semble et tout marchera parfaitement.
sdispro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 20h17   #5
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
bonsoir,

et ce code qui pose problème l'on ne peu le voir ...?

---------------------
Fichier joint dans vos discussions
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 20h42   #6
 
Inscription : avril 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 10
Points : -1
Points : -1
bonsoir, j'ai mis un exemple en pièce joint dans mon premier post.
Le code en lui-même ne pose pas de problème, je voudrais juste l'adapter pour qu'il s'active si l'avant dernière ligne du tableau contient une valeur, ce qui crée une nouvelle ligne et si une valeur est saisie... nouvelle ligne....


Code :
1
2
3
4
5
6
7
8
9
10
11
Sub steph()
On Error Resume Next
Application.ScreenUpdating = False 'evite de voir les actions se dérouler a l'ecran
With Rows(ActiveCell.Row)
    .Insert
    .Copy
    .Offset(-1, 0).PasteSpecial Paste:=xlPasteFormats
End With
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
pheonix00fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 21h02   #7
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
C'est pas vraiment clair ... c'est quoi le besoin ? tu dis "si une valeur est saisie dans l'avant dernière ligne" .. : cela veut dire quoi si c'est l'avant dernière ligne (en bas du tableau..) celle-ci n'est pas vide au départ et donc si tu modifie cette ligne en saisissant une valeur tu recopie le format de la dernière ligne vers la ligne suivante ..?
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 21h10   #8
 
Inscription : avril 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 10
Points : -1
Points : -1
Par exemple j'ai un tableau "table1" qui comporte 3 ligne, je saisie des valeurs sur la ligne 1, rien ne se passe, je saisie une valeur sur la ligne 2, là il ne reste donc plus qu'une ligne libre en bas du tableau, je voudrais que sois inséré une ligne entre 2 et 3 avec la mise en forme des lignes du tableau.

et ainsi de suite pour les lignes suivantes

[EDIT] Fusion ... merci d'utiliser le bouton
pheonix00fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 21h17   #9
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
C'est pas plus clair ... cela veut dire quoi un tableau qui comporte 3 lignes ? que contiennent ces lignes ? tu dit saisir des données en ligne 2 mais tu fais quoi en fait tu modifie les données en lignes 2 ?
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 08h41   #10
 
Inscription : avril 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 10
Points : -1
Points : -1
trois c'est un exemple je voudrais que le nombre de ligne dans le tableau augmente automatiquement au selon les besoins, il y aura une partie texte et une partie nombre pour des calcul de prix de stock...

Bonjour à tous, après une bonne nuit, j'ai pratiquement trouvé mon bonheur. Je voudrais jusque modifier le code suivant pour que la ligne insèré ait la mise en forme de la ligne ou se trouve la cellule nommé "premiereCelluleApresTableau"

Code :
1
2
3
4
5
6
7
8
9
Private Sub Worksheet_Change(ByVal Target As Range)
 ' teste si la cellule juste au dessus est remplie
 If Range("premiereCelluleApresTableau").Offset(-1) <> "" Then
 ' ajoute une ligne - la ligne s'insère au dessus
 Application.EnableEvents = False ' pour ne pas se mordre la queue
 Range("premiereCelluleApresTableau").EntireRow.Insert xlShiftDown
 Application.EnableEvents = True
 End If
End Sub
Merci pour votre aide.

Ps: il y a des cellules fusionnées, des bordures.
pheonix00fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 09h58   #11
Membre régulier
 
Homme
Developpeur
Inscription : novembre 2011
Messages : 83
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire (Rhône Alpes)

Informations professionnelles :
Activité : Developpeur
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2011
Messages : 83
Points : 87
Points : 87
Par défaut sdispro

Comme promis
Seul problème mon PC au bureau ne m'offre pas la possibilité d'ouvir ton exemple, je vais donc essayer d'être clair:

En clair, si la cellule A1 est rempli, on voit apparaitre des bordures à la celule A2.

Tu va donc dans Accueil/mise en forme conditionnelle/nouvelle règle/utiliser une formule pour quelles celulles le format sera apliqué

tu rentre cette formule:
=A1<>""

N'oubli pas de changer le format des bordures lorsque la condtion est rempli.

Voila le tour est joué
sdispro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 12h57   #12
 
Inscription : avril 2006
Messages : 10
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 10
Points : -1
Points : -1
Merci pour ta réponse, mais cela ne correspond pas à se que je veux faire, je dois insérer une nouvelle ligne car au-dessous de se tableau il y aura d'autre donnée que je ne veux écraser ou modifier, si tu peux copier la macro juste au-dessus et la tester tu verras ce qui m'intéresse, la seul chose qui manque c'est la copie de la mise en forme de la cellule ""premiereCelluleApresTableau" et l'appliquer a la ligne fraichement crée.
pheonix00fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h04.


 
 
 
 
Partenaires

Hébergement Web