Problème au niveau de VBA (insertion ligne sous condition)
Résolu/Fermé
sikasika
Messages postés
71
Date d'inscription
vendredi 14 décembre 2012
Statut
Membre
Dernière intervention
10 juillet 2014
-
4 janv. 2013 à 10:26
sikasika Messages postés 71 Date d'inscription vendredi 14 décembre 2012 Statut Membre Dernière intervention 10 juillet 2014 - 8 janv. 2013 à 09:41
sikasika Messages postés 71 Date d'inscription vendredi 14 décembre 2012 Statut Membre Dernière intervention 10 juillet 2014 - 8 janv. 2013 à 09:41
A voir également:
- Selection.insert shift:=xldown
- Excel cellule couleur si condition texte - Guide
- Site de vente en ligne particulier - Guide
- Partage de photos en ligne - Guide
- Aller à la ligne excel - Guide
- Insertion liste déroulante excel - Guide
7 réponses
sikasika
Messages postés
71
Date d'inscription
vendredi 14 décembre 2012
Statut
Membre
Dernière intervention
10 juillet 2014
3
8 janv. 2013 à 09:41
8 janv. 2013 à 09:41
bonjour tout le monde ,
je vais partager avec vous ce que j'ai pu faire
Private Sub chx_Click()
Application.ScreenUpdating = False
'recherche des cellules correspondanstes au texbox
Cells(1, 1).Select
Cells.Find(What:=UserForm2.vdr, After:=ActiveCell).Activate
If Selection.Offset(1, 0) = "" Then
ligne = Selection.Offset(1, 0).Row
Else
ligne = Selection.End(xlDown).Row + 1
End If
Rows(ligne).Select
Selection.Insert Shift:=xlDown
Sheets("VENTE").Range("A" & ligne) = UserForm2.vdr.Value
Sheets("VENTE").Range("B" & ligne) = UserForm2.emt.Value
Sheets("VENTE").Range("C" & ligne) = UserForm2.nature.Value
Sheets("VENTE").Range("D" & ligne) = UserForm2.code.Value
Sheets("VENTE").Range("F" & ligne) = UserForm2.txfac.Value
Sheets("VENTE").Range("G" & ligne) = UserForm2.dtech.Value
Sheets("VENTE").Range("I" & ligne) = UserForm2.dtem.Value
Sheets("VENTE").Range("J" & ligne) = UserForm2.sprdini.Value
Sheets("VENTE").Range("L" & ligne) = UserForm2.pachat.Value
je vais partager avec vous ce que j'ai pu faire
Private Sub chx_Click()
Application.ScreenUpdating = False
'recherche des cellules correspondanstes au texbox
Cells(1, 1).Select
Cells.Find(What:=UserForm2.vdr, After:=ActiveCell).Activate
If Selection.Offset(1, 0) = "" Then
ligne = Selection.Offset(1, 0).Row
Else
ligne = Selection.End(xlDown).Row + 1
End If
Rows(ligne).Select
Selection.Insert Shift:=xlDown
Sheets("VENTE").Range("A" & ligne) = UserForm2.vdr.Value
Sheets("VENTE").Range("B" & ligne) = UserForm2.emt.Value
Sheets("VENTE").Range("C" & ligne) = UserForm2.nature.Value
Sheets("VENTE").Range("D" & ligne) = UserForm2.code.Value
Sheets("VENTE").Range("F" & ligne) = UserForm2.txfac.Value
Sheets("VENTE").Range("G" & ligne) = UserForm2.dtech.Value
Sheets("VENTE").Range("I" & ligne) = UserForm2.dtem.Value
Sheets("VENTE").Range("J" & ligne) = UserForm2.sprdini.Value
Sheets("VENTE").Range("L" & ligne) = UserForm2.pachat.Value
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
4 janv. 2013 à 10:30
4 janv. 2013 à 10:30
Bonjour,
Pourrais-tu poster ton classeur anonymisé (ou pas s'il ne contient pas de données sensibles, enfin c'est toi qui voit) sur ce post, via www.cjoint.com ?
Pourrais-tu poster ton classeur anonymisé (ou pas s'il ne contient pas de données sensibles, enfin c'est toi qui voit) sur ce post, via www.cjoint.com ?
sikasika
Messages postés
71
Date d'inscription
vendredi 14 décembre 2012
Statut
Membre
Dernière intervention
10 juillet 2014
3
4 janv. 2013 à 11:12
4 janv. 2013 à 11:12
en fait c confidentiel et quand j'ai essayé de créer un autre classeur en copiant et collant les données et le code rien ne voulait marcher et ça m'a ennervé encore plus hhhhhh :D
donc je ne sais pas quoi faire :(
donc je ne sais pas quoi faire :(
Morgothal
Messages postés
1236
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
183
4 janv. 2013 à 11:24
4 janv. 2013 à 11:24
Alors comme ça, je dirais qu'il faut que tu utilises la même variable pour toutes les entreprises à insérer : tu as ligne1 pour BM Gest, ligne2 pour RMK et ligne3 pour WGestion... N'utilise qu'une variable pour tout ça.
Ensuite :
la première fois il marche bien mais par la suite les lignes se décalent
Peux-tu préciser ? La macro insère une ligne sur toute la feuille, donc qu'est-ce qui est décalé ?
Ensuite :
la première fois il marche bien mais par la suite les lignes se décalent
Peux-tu préciser ? La macro insère une ligne sur toute la feuille, donc qu'est-ce qui est décalé ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sikasika
Messages postés
71
Date d'inscription
vendredi 14 décembre 2012
Statut
Membre
Dernière intervention
10 juillet 2014
3
4 janv. 2013 à 11:42
4 janv. 2013 à 11:42
ah non ce ne sont pas les cellules qui se décalent ( toute la ligne s'insère ) mais c'est plutôt au niveau des société par exemple j'ai mis pour WGestion
If UserForm2.vdr = "WGestion" Then
ligne3 = Range("A36").End(xlDown).Row + 1
sur ma feuile excel les achats de la socité WGestion commencent au niveau de la ligne 36 sachant qu'il y a bien d'autres sociétés avant ( et je sépare les lignes des sociétés différentes par une ligne vide)
donc si j'insère des sociétés qui se trouvent avant WGestion elles vont la décaler elle ne commensera plus à A36
et au moment ou je voudrai insérer WGestion il ne me la mettra pas à la fin des lignes correspondantes à WGestion
j espère que je t'ai bien expliqué la chose
If UserForm2.vdr = "WGestion" Then
ligne3 = Range("A36").End(xlDown).Row + 1
sur ma feuile excel les achats de la socité WGestion commencent au niveau de la ligne 36 sachant qu'il y a bien d'autres sociétés avant ( et je sépare les lignes des sociétés différentes par une ligne vide)
donc si j'insère des sociétés qui se trouvent avant WGestion elles vont la décaler elle ne commensera plus à A36
et au moment ou je voudrai insérer WGestion il ne me la mettra pas à la fin des lignes correspondantes à WGestion
j espère que je t'ai bien expliqué la chose
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 308
4 janv. 2013 à 11:51
4 janv. 2013 à 11:51
Bonjour,
il faudrait plutôt faire :
Cordialement.
il faudrait plutôt faire :
Private Sub chx_Click() Application.ScreenUpdating = False 'Recherche la première occurence de UserForm2.vdr à partir de A1 Cells(1,1).Select Cells.Find(What:=UserForm2.vdr, After:=ActiveCell).Activate ligne = Selection.End(slDown).Row + 1 Rows(ligne).Select Selection.Insert Shift:=xlDown Sheets("VENTE").Range("A" & ligne) = UserForm2.vdr.Value Sheets("VENTE").Range("B" & ligne) = UserForm2.emt.Value Sheets("VENTE").Range("C" & ligne) = UserForm2.nature.Value Sheets("VENTE").Range("D" & ligne) = UserForm2.code.Value Sheets("VENTE").Range("F" & ligne) = UserForm2.txfac.Value Sheets("VENTE").Range("G" & ligne) = UserForm2.dtech.Value Sheets("VENTE").Range("I" & ligne) = UserForm2.dtem.Value Sheets("VENTE").Range("J" & ligne) = UserForm2.sprdini.Value Sheets("VENTE").Range("L" & ligne) = UserForm2.pachat.Value end sub
Cordialement.
sikasika
Messages postés
71
Date d'inscription
vendredi 14 décembre 2012
Statut
Membre
Dernière intervention
10 juillet 2014
3
4 janv. 2013 à 12:31
4 janv. 2013 à 12:31
merci pour ton aide
donc ça a marcher pour une société et les autres non des fois ça me sort un message d'erreur ( objet ou variable non définie) et des fois ça place une société au niveau d'une autre surtout celles ou il n y a qu'une seule ligne (ça veut dire que la société n'a effectué qu'un seul achat)
donc ça a marcher pour une société et les autres non des fois ça me sort un message d'erreur ( objet ou variable non définie) et des fois ça place une société au niveau d'une autre surtout celles ou il n y a qu'une seule ligne (ça veut dire que la société n'a effectué qu'un seul achat)
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
4 janv. 2013 à 12:53
4 janv. 2013 à 12:53
Bonjour
qu'il y a t il de marquer dans A36, A51, A56 ?
d'anvance merci
qu'il y a t il de marquer dans A36, A51, A56 ?
d'anvance merci
sikasika
Messages postés
71
Date d'inscription
vendredi 14 décembre 2012
Statut
Membre
Dernière intervention
10 juillet 2014
3
4 janv. 2013 à 14:58
4 janv. 2013 à 14:58
Bonjour ,
je t'explique mon tableau
avant A6 c vide
A6 y a une société
A7 vide
A8 et A9 société
A10 et A11 vide
A12 société
A15 jusqua A 17 société .....
A36 jusqu'a A40 il y a le nom d'un société
A 56 aussi
pour A51 j'ai fait une ptite gaffe fallait mettre A53 :D
voilà
je t'explique mon tableau
avant A6 c vide
A6 y a une société
A7 vide
A8 et A9 société
A10 et A11 vide
A12 société
A15 jusqua A 17 société .....
A36 jusqu'a A40 il y a le nom d'un société
A 56 aussi
pour A51 j'ai fait une ptite gaffe fallait mettre A53 :D
voilà
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
4 janv. 2013 à 15:07
4 janv. 2013 à 15:07
mais quels sont les noms de ces sociétés
Dans ta demande et suivant ton code on avait 3 cas à gérer A36, A51(53) et A56
????
Dans ta demande et suivant ton code on avait 3 cas à gérer A36, A51(53) et A56
????
Le Pingou
Messages postés
12200
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
22 novembre 2024
1 450
4 janv. 2013 à 22:01
4 janv. 2013 à 22:01
Bonjour,
Excusez l'intrusion, mais il me semble que vous pouvez mettre une copie du classeur en prenant soin de supprimer les parties confidentielles.
Qu'en pensez-vous ?
Si oui, vous mettez sur https://www.cjoint.com/ et poster le lien.
Excusez l'intrusion, mais il me semble que vous pouvez mettre une copie du classeur en prenant soin de supprimer les parties confidentielles.
Qu'en pensez-vous ?
Si oui, vous mettez sur https://www.cjoint.com/ et poster le lien.
sikasika
Messages postés
71
Date d'inscription
vendredi 14 décembre 2012
Statut
Membre
Dernière intervention
10 juillet 2014
3
7 janv. 2013 à 14:41
7 janv. 2013 à 14:41
bonjour, tout le monde
je vous remercie pour votre aide , j'ai pu résoudre le problème
merci
je vous remercie pour votre aide , j'ai pu résoudre le problème
merci