Copier coller ligne si condition... HELLLP PLZ
Résolu/Fermé
besoin_d'aide
Messages postés
28
Date d'inscription
jeudi 2 mai 2013
Statut
Membre
Dernière intervention
25 juin 2013
-
13 mai 2013 à 14:47
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 24 mai 2013 à 14:31
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 24 mai 2013 à 14:31
A voir également:
- Copier coller ligne si condition... HELLLP PLZ
- Excel cellule couleur si condition texte - Guide
- Copier coller pdf - Guide
- Aller à la ligne excel - Guide
- Historique copier-coller android - Guide
- Symbole clavier copier coller - Guide
14 réponses
besoin_d'aide
Messages postés
28
Date d'inscription
jeudi 2 mai 2013
Statut
Membre
Dernière intervention
25 juin 2013
14 mai 2013 à 15:51
14 mai 2013 à 15:51
s'il vous plaiit, je tourne en rond et je n'ai pas trouvé de solution ...
pourquoi mon code, dès qu'il arrive à Worksheets("détails").Activate, il saute directement à Private Sub worksheet_activate()
j'avoue je suis plus qu'une quiche en informatique en général ...
Merci
voilà le code :
'insérer recrus
Private Sub détails()
Dim Place As Long
' 1ère ligne vide dans détails
Place = 1 + Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
'rechercher cellules non vides
Worksheets("entrée-sortie").Select
ligES = 4
While Cells(ligES, 1) <> ""
ligES = ligES + 1
Wend
'Balayer les lignes de ES
For i = 4 To ligES
Worksheets("détails").Activate
If Sheets("entrée-sortie").Range("Z" & i) = Sheets("détails").Range(c8).Value Then
Worksheets("entrée-sortie").Range("ligES").Copy
Destination = Sheets("détails").Range("A" & Place)
Place = Place + 1
End If
Next i
'Eviter doublons
Dim lig As Double
'tri sur identifiant
ActiveSheet.UsedRange.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
For lig = 1 To ActiveSheet.UsedRange.Rows.Count
If Cells(lig, 1).Value = Cells(lig + 1, 1).Value _
And Cells(lig, 1).Value <> "" Then
'regroupement
Cells(lig, Cells(lig, 256).End(xlToLeft).Column + 1).Value _
= Cells(lig + 1, 4).Value
'suppression ligne regroupée
Rows(lig + 1).Delete
lig = lig - 1
End If
Next lig
End Sub
'lorsque l'on active la feuille (quand elle est active)
Private Sub worksheet_activate()
Dim i As Byte
Range("A5").Value = ComboBox1
'on vide la liste des mois
ComboBox1.Clear
With ComboBox1
'et on la remplit
For i = 1 To 12
.AddItem Format(CDate("01/" & i & "/2000"), "mmmm")
Next i
End With
End Sub
pourquoi mon code, dès qu'il arrive à Worksheets("détails").Activate, il saute directement à Private Sub worksheet_activate()
j'avoue je suis plus qu'une quiche en informatique en général ...
Merci
voilà le code :
'insérer recrus
Private Sub détails()
Dim Place As Long
' 1ère ligne vide dans détails
Place = 1 + Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
'rechercher cellules non vides
Worksheets("entrée-sortie").Select
ligES = 4
While Cells(ligES, 1) <> ""
ligES = ligES + 1
Wend
'Balayer les lignes de ES
For i = 4 To ligES
Worksheets("détails").Activate
If Sheets("entrée-sortie").Range("Z" & i) = Sheets("détails").Range(c8).Value Then
Worksheets("entrée-sortie").Range("ligES").Copy
Destination = Sheets("détails").Range("A" & Place)
Place = Place + 1
End If
Next i
'Eviter doublons
Dim lig As Double
'tri sur identifiant
ActiveSheet.UsedRange.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
For lig = 1 To ActiveSheet.UsedRange.Rows.Count
If Cells(lig, 1).Value = Cells(lig + 1, 1).Value _
And Cells(lig, 1).Value <> "" Then
'regroupement
Cells(lig, Cells(lig, 256).End(xlToLeft).Column + 1).Value _
= Cells(lig + 1, 4).Value
'suppression ligne regroupée
Rows(lig + 1).Delete
lig = lig - 1
End If
Next lig
End Sub
'lorsque l'on active la feuille (quand elle est active)
Private Sub worksheet_activate()
Dim i As Byte
Range("A5").Value = ComboBox1
'on vide la liste des mois
ComboBox1.Clear
With ComboBox1
'et on la remplit
For i = 1 To 12
.AddItem Format(CDate("01/" & i & "/2000"), "mmmm")
Next i
End With
End Sub
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
15 mai 2013 à 13:49
15 mai 2013 à 13:49
Salut,
pourquoi mon code, dès qu'il arrive à Worksheets("détails").Activate, il saute directement à Private Sub worksheet_activate() ?
Parce que, comme tu l'as commenté dans ton code :
'lorsque l'on active la feuille (quand elle est active)
Private Sub worksheet_activate()
Il faut éviter les Sheets().Select ou Sheets().Activate.
Pour cela je te conseille de déclarer des objets Worksheets en entête de procédure :
Dim wsDetail As Worksheets
Dim wsEntreeSortie As Worksheets
Et ensuite d'instancier les objets:
Set wsDetail = Thisworkbook.Worksheets("détails")
Set wsEntreeSortie = Thisworkbook.Worksheets("entrée-sortie")
Et pour les utiliser :
A toi de modifier le reste de ton code en conséquence et de supprimer les lignes devenues inutiles.
;0)
pourquoi mon code, dès qu'il arrive à Worksheets("détails").Activate, il saute directement à Private Sub worksheet_activate() ?
Parce que, comme tu l'as commenté dans ton code :
'lorsque l'on active la feuille (quand elle est active)
Private Sub worksheet_activate()
Il faut éviter les Sheets().Select ou Sheets().Activate.
Pour cela je te conseille de déclarer des objets Worksheets en entête de procédure :
Dim wsDetail As Worksheets
Dim wsEntreeSortie As Worksheets
Et ensuite d'instancier les objets:
Set wsDetail = Thisworkbook.Worksheets("détails")
Set wsEntreeSortie = Thisworkbook.Worksheets("entrée-sortie")
Et pour les utiliser :
Dim Place As Long ' 1ère ligne vide dans détails Place = 1 + wsDetail.Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row 'rechercher cellules non vides 'Worksheets("entrée-sortie").Select // devient inutile // ligES = 4 While wsEntreeSortie.Cells(ligES, 1) <> "" ligES = ligES + 1 Wend
A toi de modifier le reste de ton code en conséquence et de supprimer les lignes devenues inutiles.
;0)
besoin_d'aide
Messages postés
28
Date d'inscription
jeudi 2 mai 2013
Statut
Membre
Dernière intervention
25 juin 2013
Modifié par besoin_d'aide le 15/05/2013 à 16:48
Modifié par besoin_d'aide le 15/05/2013 à 16:48
merci pour ta réponse, je commençais à perdre espoir qu'on me réponde, je vais tenter ce que tu m'as dis et te dirais si ça a marché.
Merci encore une fois
Merci encore une fois
besoin_d'aide
Messages postés
28
Date d'inscription
jeudi 2 mai 2013
Statut
Membre
Dernière intervention
25 juin 2013
16 mai 2013 à 08:44
16 mai 2013 à 08:44
bonjour,
j'ai une erreur de compilation n° 13 ;
Set wsDetail = Thisworkbook.Worksheets("détails")
Set wsEntreeSortie = Thisworkbook.Worksheets("entrée-sortie")
ne fonctionne pas :s
merci
j'ai une erreur de compilation n° 13 ;
Set wsDetail = Thisworkbook.Worksheets("détails")
Set wsEntreeSortie = Thisworkbook.Worksheets("entrée-sortie")
ne fonctionne pas :s
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
besoin_d'aide
Messages postés
28
Date d'inscription
jeudi 2 mai 2013
Statut
Membre
Dernière intervention
25 juin 2013
16 mai 2013 à 08:57
16 mai 2013 à 08:57
franchement ca marche pas, je suis une quiche en informatique, cela fait des jours (plus de deux semaines) que je galère pour un petit programme... je lis et relis et me forme seule mais là... je n'y arrive pas...
Je remercie d'avance tous ceux qui peuvent m'aider
cordialement
Je remercie d'avance tous ceux qui peuvent m'aider
cordialement
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
19 mai 2013 à 16:28
19 mai 2013 à 16:28
Bonjour,
Effectivement, j'ai fait ça de tête
Il faut modifier ceci :
Dim wsDetail As Worksheets
Dim wsEntreeSortie As Worksheets
Par
Dim wsDetail As Worksheet
Dim wsEntreeSortie As Worksheet
Désolé pour cette erreur grossière de ma part.
Effectivement, j'ai fait ça de tête
Il faut modifier ceci :
Dim wsDetail As Worksheets
Dim wsEntreeSortie As Worksheets
Par
Dim wsDetail As Worksheet
Dim wsEntreeSortie As Worksheet
Désolé pour cette erreur grossière de ma part.
besoin_d'aide
Messages postés
28
Date d'inscription
jeudi 2 mai 2013
Statut
Membre
Dernière intervention
25 juin 2013
21 mai 2013 à 12:16
21 mai 2013 à 12:16
merci pour tout :)
Une autre question svp :
j'ai ce code, destiné à me remplir ma combobox par les mois. Le problème, c'est qu'elle ne s'exécute pas, et il faut entrer dans le code et mettre exécuter sub pour que ca marche. Que dois-je faire
Dim j As Byte
Range("A5").Value = ComboBox1
'on vide la liste des mois
ComboBox1.Clear
With ComboBox1
'et on la remplit
For j = 1 To 12
.AddItem Format(CDate("01/" & j & "/2000"), "mmmm")
Next j
End With
MERCI ENCORE UNE FOIS
Une autre question svp :
j'ai ce code, destiné à me remplir ma combobox par les mois. Le problème, c'est qu'elle ne s'exécute pas, et il faut entrer dans le code et mettre exécuter sub pour que ca marche. Que dois-je faire
Dim j As Byte
Range("A5").Value = ComboBox1
'on vide la liste des mois
ComboBox1.Clear
With ComboBox1
'et on la remplit
For j = 1 To 12
.AddItem Format(CDate("01/" & j & "/2000"), "mmmm")
Next j
End With
MERCI ENCORE UNE FOIS
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
22 mai 2013 à 09:02
22 mai 2013 à 09:02
Bonjour,
Désolé, je ne comprends pas trop ce que tu veux faire et j'ai besoin d'en savoir un peu plus.
Ou se trouve ta combo ? (Userform, sheets)
Après quel évènement la combo doit se remplir ?
Désolé, je ne comprends pas trop ce que tu veux faire et j'ai besoin d'en savoir un peu plus.
Ou se trouve ta combo ? (Userform, sheets)
Après quel évènement la combo doit se remplir ?
besoin_d'aide
Messages postés
28
Date d'inscription
jeudi 2 mai 2013
Statut
Membre
Dernière intervention
25 juin 2013
22 mai 2013 à 10:50
22 mai 2013 à 10:50
Bonjour,
j'ai une feuille excel, avec un combobox , il comprend les mois (de janvier à décembre).. Normalement, en changeant le mois, une nouvelle feuille est créée.
le problème c'est qu'à l'ouverture, le combobox n'est pas rempli .. je dois dans ce cas visualiser le code et mettre "exécuter sub " pour qu'il soit rempli...
merci
j'ai une feuille excel, avec un combobox , il comprend les mois (de janvier à décembre).. Normalement, en changeant le mois, une nouvelle feuille est créée.
le problème c'est qu'à l'ouverture, le combobox n'est pas rempli .. je dois dans ce cas visualiser le code et mettre "exécuter sub " pour qu'il soit rempli...
merci
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
22 mai 2013 à 11:24
22 mai 2013 à 11:24
Admettons que le combobox contenant les mois soit sur le feuille 1 du classeur.
Dans l'éditeur VB du classeur, il y a à gauche, sous les feuilles, un élément ThisWorkbook. En double cliquant dessus, on ouvre à droite la fenêtre d'édition. Dans la liste déroulante de gauche (Général), il faut cliquer sur "Workbook". On a alors ça
C'est ici qu'il faut mettre le code qui remplit le combobox.
Dans l'éditeur VB du classeur, il y a à gauche, sous les feuilles, un élément ThisWorkbook. En double cliquant dessus, on ouvre à droite la fenêtre d'édition. Dans la liste déroulante de gauche (Général), il faut cliquer sur "Workbook". On a alors ça
Private Sub Workbook_Open() End Sub
C'est ici qu'il faut mettre le code qui remplit le combobox.
besoin_d'aide
Messages postés
28
Date d'inscription
jeudi 2 mai 2013
Statut
Membre
Dernière intervention
25 juin 2013
22 mai 2013 à 12:10
22 mai 2013 à 12:10
Bonjour,
ca ne marche pas :( erreur 424 .
le problème c'est que le code marchait quand je l'avait sur la feuille , mais il faut l'exécuter à chaque fois
voici mon code au cas où :
Private Sub workbook_open()
Dim x As Byte
'on vide la liste des mois
With ComboBox1
'et on la remplit
For x = 1 To 12
.AddItem Format(CDate("01/" & x & "/2000"), "mmmm")
Next x
End With
End Sub
MERCI
ca ne marche pas :( erreur 424 .
le problème c'est que le code marchait quand je l'avait sur la feuille , mais il faut l'exécuter à chaque fois
voici mon code au cas où :
Private Sub workbook_open()
Dim x As Byte
'on vide la liste des mois
With ComboBox1
'et on la remplit
For x = 1 To 12
.AddItem Format(CDate("01/" & x & "/2000"), "mmmm")
Next x
End With
End Sub
MERCI
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
23 mai 2013 à 17:56
23 mai 2013 à 17:56
Que veux-tu dire par : "il faut l'exécuter à chaque fois" ?
J'avoue ne pas comprendre ce que tu cherches à faire. Essaies d'être un peu plus précise dans tes demandes.
Le code ne fonctionne pas parce que tu ne lui dis pas où se trouve le combobox !!!
J'avoue ne pas comprendre ce que tu cherches à faire. Essaies d'être un peu plus précise dans tes demandes.
Le code ne fonctionne pas parce que tu ne lui dis pas où se trouve le combobox !!!
besoin_d'aide
Messages postés
28
Date d'inscription
jeudi 2 mai 2013
Statut
Membre
Dernière intervention
25 juin 2013
24 mai 2013 à 08:34
24 mai 2013 à 08:34
merci pour ta réponse, c'est bon j'ai réussi, comment je ne sais pas mais ca c'est fait :)....
Je voulais te mettre le fichier sur cjoint, mais le site ne fonctionnait pas...
Merci
Je voulais te mettre le fichier sur cjoint, mais le site ne fonctionnait pas...
Merci
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
24 mai 2013 à 14:31
24 mai 2013 à 14:31
Content pour toi.
Bonne continuation.
;0)
Bonne continuation.
;0)