VBA insertion ligne dans tableau
Résolu/Fermé
linette44
Messages postés
23
Date d'inscription
dimanche 1 avril 2007
Statut
Membre
Dernière intervention
20 mai 2008
-
9 févr. 2008 à 16:40
nus - 26 mars 2008 à 16:19
nus - 26 mars 2008 à 16:19
A voir également:
- VBA insertion ligne dans tableau
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Aller à la ligne excel - Guide
- Partager photos en ligne - Guide
10 réponses
linette44
Messages postés
23
Date d'inscription
dimanche 1 avril 2007
Statut
Membre
Dernière intervention
20 mai 2008
3
9 févr. 2008 à 19:42
9 févr. 2008 à 19:42
je viens de trouver la formule qui convient en ajoutant le fait qu'elle va chercher des lignes sur la feuille 2 et qu'elle les copie en colonne B à la place de la ligne vierge
Sub insertA()
Dim cellule As Variant
'se positionne au bas de la colonne et remonte
For i = Range("a65536").End(xlUp).Row To 2 Step -1
'selectionne la ligne lors du changement de valeur et ajoute une ligne en dessous
If cells(i, 1).Value <> cells(i + 1, 1).Value Then Rows(i + 1).EntireRow.insert Shift:=x1Down
'va sur la feuille 2 pour copier et sur feuille 1 pour coller
Sheets("Feuil2").Select
Rows("6:9").Select
Selection.Copy
Sheets("Feuil1").Select
Next
SUITE 1 : Par contre, j'ai un problème la macro n'insère pas de ligne après ma dernière ligne (LAPIN), il n'y a donc pas de copier /coller des cellules de la feuille 2 après LAPIN. Y a-t-il une solution ?
Voici le résultat :
CHIEN
CHIEN
CHIEN
GRIS
CHAT
CHAT
JAUNE
LAPIN
SUITE 2 : Les informations de la feuille 2 (GRIS, ...) ont été collées en colonne B. Je voudrais que les informations de la ligne précédente soit copiées en colonne A
résultat
CHIEN
CHIEN
CHIEN
CHIEN GRIS
CHAT
CHAT
CHAT JAUNE
etc.....
En espérant trouver de l'aide
Linette44
Sub insertA()
Dim cellule As Variant
'se positionne au bas de la colonne et remonte
For i = Range("a65536").End(xlUp).Row To 2 Step -1
'selectionne la ligne lors du changement de valeur et ajoute une ligne en dessous
If cells(i, 1).Value <> cells(i + 1, 1).Value Then Rows(i + 1).EntireRow.insert Shift:=x1Down
'va sur la feuille 2 pour copier et sur feuille 1 pour coller
Sheets("Feuil2").Select
Rows("6:9").Select
Selection.Copy
Sheets("Feuil1").Select
Next
SUITE 1 : Par contre, j'ai un problème la macro n'insère pas de ligne après ma dernière ligne (LAPIN), il n'y a donc pas de copier /coller des cellules de la feuille 2 après LAPIN. Y a-t-il une solution ?
Voici le résultat :
CHIEN
CHIEN
CHIEN
GRIS
CHAT
CHAT
JAUNE
LAPIN
SUITE 2 : Les informations de la feuille 2 (GRIS, ...) ont été collées en colonne B. Je voudrais que les informations de la ligne précédente soit copiées en colonne A
résultat
CHIEN
CHIEN
CHIEN
CHIEN GRIS
CHAT
CHAT
CHAT JAUNE
etc.....
En espérant trouver de l'aide
Linette44
bonjour à tous
je souhaiterais savoir si il existe une macro pour autoriser l'utilisation d'un classeur excel par plusieurs et une fois le fichier enregistrer insérer automatiquement les lignes qui ont étaient saisies par d'autre personne.
merci
je souhaiterais savoir si il existe une macro pour autoriser l'utilisation d'un classeur excel par plusieurs et une fois le fichier enregistrer insérer automatiquement les lignes qui ont étaient saisies par d'autre personne.
merci
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
11 mars 2008 à 11:13
11 mars 2008 à 11:13
Bonjour Nus,
est-ce que les options de partage du classeur ne suffiraient pas ?
outils/partager le classeur
est-ce que les options de partage du classeur ne suffiraient pas ?
outils/partager le classeur
nus
>
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
11 mars 2008 à 14:40
11 mars 2008 à 14:40
Bonjour Ivan-hoe
non j'ai déjà essayé en ouvrant le fichier sur 2 postes différents!!
sinon j'ai un autre problème au niveau du userform que j'ai crée, lorsque je lance la macro, il me sort le message suivant:
erreur 424, objet requis ??
le débogeur me sélectionne la ligne nouvelleActionForm.show dans la macro suivante:
Private Sub Afficher_nouvelleActionForm()
nouvelleActionForm.Show
End Sub
je ne comprend pas le problème
merci d'avance
non j'ai déjà essayé en ouvrant le fichier sur 2 postes différents!!
sinon j'ai un autre problème au niveau du userform que j'ai crée, lorsque je lance la macro, il me sort le message suivant:
erreur 424, objet requis ??
le débogeur me sélectionne la ligne nouvelleActionForm.show dans la macro suivante:
Private Sub Afficher_nouvelleActionForm()
nouvelleActionForm.Show
End Sub
je ne comprend pas le problème
merci d'avance
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
>
nus
11 mars 2008 à 14:57
11 mars 2008 à 14:57
Vérifie que ton userform s'appelle bien "nouvelleActionForm" et qu'il se trouve dans le même fichier que ta macro.
Si ce n'est pas ça, alors je ne sais pas ...
Si ce n'est pas ça, alors je ne sais pas ...
Bonjour,
j'ai toujours un problème avec mon userform
quand je clique sur le bouton affecté à la macro sur ma feuille de calcul, pas de problème le userform apparaît mais quand je le remplis et que je valide avec un bouton, rien ne s'inscrit dans ma feuille car je veux que les infos du userform s'inscrive dans une ligne. actuellement les données sont rentrées directement dans la feuille excel mais mon chef préfère une userform. comment je peux régler ce problème. j'aimerai vous poster le fichier mais c'est confidentiel!!
merci
j'ai toujours un problème avec mon userform
quand je clique sur le bouton affecté à la macro sur ma feuille de calcul, pas de problème le userform apparaît mais quand je le remplis et que je valide avec un bouton, rien ne s'inscrit dans ma feuille car je veux que les infos du userform s'inscrive dans une ligne. actuellement les données sont rentrées directement dans la feuille excel mais mon chef préfère une userform. comment je peux régler ce problème. j'aimerai vous poster le fichier mais c'est confidentiel!!
merci
bonjour à tous
j'ai crée un userform et lorsque je valide avec mon bouton OK, tous les données de mon userform n'apparaissent pas sur ma feuille. Je souhaiterai savoir si quelqu'un connait une macro pour que le texte que je rentre par exemple dans la textbox1 s'inscrive dans la case B7. Je cherche également à faire en sorte que si je rempli à nouveau mon userform, les données s'inscrivent à la suite de la dernière complétée dans la feuille
merci d'avance
j'ai crée un userform et lorsque je valide avec mon bouton OK, tous les données de mon userform n'apparaissent pas sur ma feuille. Je souhaiterai savoir si quelqu'un connait une macro pour que le texte que je rentre par exemple dans la textbox1 s'inscrive dans la case B7. Je cherche également à faire en sorte que si je rempli à nouveau mon userform, les données s'inscrivent à la suite de la dernière complétée dans la feuille
merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
13 mars 2008 à 13:36
13 mars 2008 à 13:36
Salut Nus, il faut que les instructions nécessaires à la recopie des données de ton userform vers ta feuille excel apparaissent dans le code de ton bouton OK
quelquechose du genre :
Private Sub BoutonOK_Click()
activesheet.range("b7").value = me.textbox1.value
unload me
End Sub
Sans passer par un userform et des macros, est-ce que ton problème ne pourrait pas être résolu par Excel avec Données/Formulaire ? C'est un formulaire tout prêt qui te permet de remplir ta feuille de données de manière pratique.
A suivre...
quelquechose du genre :
Private Sub BoutonOK_Click()
activesheet.range("b7").value = me.textbox1.value
unload me
End Sub
Sans passer par un userform et des macros, est-ce que ton problème ne pourrait pas être résolu par Excel avec Données/Formulaire ? C'est un formulaire tout prêt qui te permet de remplir ta feuille de données de manière pratique.
A suivre...
Merci Ivna-Hoe ça marche.
Un autre petite question, toutes les données inscrites dans mes textbox et combobox sont insérées à la ligne 4 grâce à l'instruction suivante:
Feuil1.Range("B4") = affaireComboBox2
Feuil1.Range("C4") = dateEmissionTextBox
Feuil1.Range("D4") = origineTextBox
Feuil1.Range("E4") = emmetteurTextBox
Feuil1.Range("F4") = libelleActionTextBox
Feuil1.Range("G4") = respActionComboBox
Feuil1.Range("H4") = delaiSouhaiteTextBox
Feuil1.Range("I4") = criticiteTextBox
Feuil1.Range("J4") = statutComboBox
Feuil1.Range("L4") = commentaireTextBox
Feuil1.Range("M4") = avancementTextBox
Maintenant si je rempli à nouveau mon userform, les nouvelles données effacent les précédentes toujours sur la ligne 4.
comment faire pour conserver les données de la ligne 4 et insérer les nouvelles données sur la ligne suivante.
le problème étant que si par exemple j'ai déjà disons 22 lignes complétées, la 23° vienne à la suite de la 22ième et ainsi de suite.
désolé mais je découvre visual et ma boite ne veux pas investir pour ma formation!!
merci
Un autre petite question, toutes les données inscrites dans mes textbox et combobox sont insérées à la ligne 4 grâce à l'instruction suivante:
Feuil1.Range("B4") = affaireComboBox2
Feuil1.Range("C4") = dateEmissionTextBox
Feuil1.Range("D4") = origineTextBox
Feuil1.Range("E4") = emmetteurTextBox
Feuil1.Range("F4") = libelleActionTextBox
Feuil1.Range("G4") = respActionComboBox
Feuil1.Range("H4") = delaiSouhaiteTextBox
Feuil1.Range("I4") = criticiteTextBox
Feuil1.Range("J4") = statutComboBox
Feuil1.Range("L4") = commentaireTextBox
Feuil1.Range("M4") = avancementTextBox
Maintenant si je rempli à nouveau mon userform, les nouvelles données effacent les précédentes toujours sur la ligne 4.
comment faire pour conserver les données de la ligne 4 et insérer les nouvelles données sur la ligne suivante.
le problème étant que si par exemple j'ai déjà disons 22 lignes complétées, la 23° vienne à la suite de la 22ième et ainsi de suite.
désolé mais je découvre visual et ma boite ne veux pas investir pour ma formation!!
merci
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
13 mars 2008 à 16:01
13 mars 2008 à 16:01
Alors,
on est bien d'accord que c'est le 4 de "B4" qu'on aimerait faire varier ?
on va donc l'appeler i, par exemple.
Tes instructions deviennent donc :
Feuil1.Range("B" & i) = affaireComboBox2
Feuil1.Range("C" & i) = dateEmissionTextBox
etc.
au début de ta procédure, il faut aussi rajouter les instructions suivantes
Dim i as long
i = range("B4").end(xldown).row +1
'(i prend la valeur du numéro de la dernière ligne de données + 1)
Quand au problème de la formation en entreprise ... c'est un autre débat !!
A suivre...
on est bien d'accord que c'est le 4 de "B4" qu'on aimerait faire varier ?
on va donc l'appeler i, par exemple.
Tes instructions deviennent donc :
Feuil1.Range("B" & i) = affaireComboBox2
Feuil1.Range("C" & i) = dateEmissionTextBox
etc.
au début de ta procédure, il faut aussi rajouter les instructions suivantes
Dim i as long
i = range("B4").end(xldown).row +1
'(i prend la valeur du numéro de la dernière ligne de données + 1)
Quand au problème de la formation en entreprise ... c'est un autre débat !!
A suivre...
bon je viens de tester ton code mais il m'affiche un message d'erreur: "la méthode 'Range' de l'objet requis '_worksheet' a échoué" !! et il sélectionne en jaune la 1ère ligne :Feuil1.Range("B"&i)=affaireComboBox2 ??
Dim i As Long
i = Range("B4").End(xlDown).Row + 1
'i prend la valeur du numéro de la dernière ligne de données +1
Feuil1.Range("B" & i) = affaireComboBox2
Feuil1.Range("C" & i) = dateEmissionTextBox
Feuil1.Range("D" & i) = origineTextBox
Feuil1.Range("E" & i) = emmetteurTextBox
Feuil1.Range("F" & i) = libelleActionTextBox
Feuil1.Range("G" & i) = respActionComboBox
Feuil1.Range("H" & i) = delaiSouhaiteTextBox
Feuil1.Range("I" & i) = criticiteTextBox
Feuil1.Range("J" & i) = statutComboBox
Feuil1.Range("L" & i) = commentaireTextBox
Feuil1.Range("M" & i) = avancementTextBox
on ne peut pas joindre de fichier sinon??
merci
Dim i As Long
i = Range("B4").End(xlDown).Row + 1
'i prend la valeur du numéro de la dernière ligne de données +1
Feuil1.Range("B" & i) = affaireComboBox2
Feuil1.Range("C" & i) = dateEmissionTextBox
Feuil1.Range("D" & i) = origineTextBox
Feuil1.Range("E" & i) = emmetteurTextBox
Feuil1.Range("F" & i) = libelleActionTextBox
Feuil1.Range("G" & i) = respActionComboBox
Feuil1.Range("H" & i) = delaiSouhaiteTextBox
Feuil1.Range("I" & i) = criticiteTextBox
Feuil1.Range("J" & i) = statutComboBox
Feuil1.Range("L" & i) = commentaireTextBox
Feuil1.Range("M" & i) = avancementTextBox
on ne peut pas joindre de fichier sinon??
merci
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
13 mars 2008 à 17:19
13 mars 2008 à 17:19
l'objet requis '_worksheet' , ça veut que la feuille n'est pas identifiée.
Comment s'appelle la feuille dans laquelle tu veux écrire ?
Transforme la ligne de code comme suit :
Sheets("Nomdetafeuille").Range("B" & i) = affaireComboBox2.value
est-ce que c'est mieux ?
Comment s'appelle la feuille dans laquelle tu veux écrire ?
Transforme la ligne de code comme suit :
Sheets("Nomdetafeuille").Range("B" & i) = affaireComboBox2.value
est-ce que c'est mieux ?
salut ivan
je me suis inspiré d'un fichier existant et mis en place le code suivant:
Dim i As Integer
Dim konteur As Integer
Dim NBaction As Integer
'début de programme
NBaction = 4
'comptage des cellules dans l'onglet en_cours
ActiveWorkbook.Worksheets("en_cours").Activate
For konteur = 4 To 4000
If Range(Cells(konteur, 1), Cells(konteur, 1)) <> "" Or Range(Cells(konteur, 2), Cells(konteur, 2)) <> "" Then
NBaction = NBaction + 1
End If
Next konteur
Feuil1.Range("B" & NBaction) = affaireComboBox2
Feuil1.Range("C" & NBaction) = dateEmissionTextBox
Feuil1.Range("D" & NBaction) = origineTextBox
Feuil1.Range("E" & NBaction) = emmetteurTextBox
Feuil1.Range("F" & NBaction) = libelleActionTextBox
Feuil1.Range("G" & NBaction) = respActionComboBox
Feuil1.Range("H" & NBaction) = delaiSouhaiteTextBox
Feuil1.Range("I" & NBaction) = criticiteTextBox
Feuil1.Range("J" & NBaction) = statutComboBox
Feuil1.Range("L" & NBaction) = commentaireTextBox
Feuil1.Range("M" & NBaction) = avancementTextBox
cette fois-ci quand je remplis mon userform, les lignes s'insérent à la suite des autres mais à la fin de mon tableau.
comment faire pour détecter la 1ère ligne vide du tableau (la 4 si je part d'un tableau vide ou alors la nième)!!
merci
et désolé je sais je suis un peu chiant, mais on se renseigne comme on peut
je me suis inspiré d'un fichier existant et mis en place le code suivant:
Dim i As Integer
Dim konteur As Integer
Dim NBaction As Integer
'début de programme
NBaction = 4
'comptage des cellules dans l'onglet en_cours
ActiveWorkbook.Worksheets("en_cours").Activate
For konteur = 4 To 4000
If Range(Cells(konteur, 1), Cells(konteur, 1)) <> "" Or Range(Cells(konteur, 2), Cells(konteur, 2)) <> "" Then
NBaction = NBaction + 1
End If
Next konteur
Feuil1.Range("B" & NBaction) = affaireComboBox2
Feuil1.Range("C" & NBaction) = dateEmissionTextBox
Feuil1.Range("D" & NBaction) = origineTextBox
Feuil1.Range("E" & NBaction) = emmetteurTextBox
Feuil1.Range("F" & NBaction) = libelleActionTextBox
Feuil1.Range("G" & NBaction) = respActionComboBox
Feuil1.Range("H" & NBaction) = delaiSouhaiteTextBox
Feuil1.Range("I" & NBaction) = criticiteTextBox
Feuil1.Range("J" & NBaction) = statutComboBox
Feuil1.Range("L" & NBaction) = commentaireTextBox
Feuil1.Range("M" & NBaction) = avancementTextBox
cette fois-ci quand je remplis mon userform, les lignes s'insérent à la suite des autres mais à la fin de mon tableau.
comment faire pour détecter la 1ère ligne vide du tableau (la 4 si je part d'un tableau vide ou alors la nième)!!
merci
et désolé je sais je suis un peu chiant, mais on se renseigne comme on peut
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
14 mars 2008 à 12:47
14 mars 2008 à 12:47
Bonjour Nus,
1 - tu n'est pas chiant, tu es persévérant. Nuance.
2 - tu fais au moins l'effort de chercher par toi-même et de proposer tes propres solutions, c'est très louable
3 - je ne comprends pas pourquoi ça t'écrit les données à la fin de ton tableau. Le code que tu proposes (même s'il est un peu lourd) écrit bien les données en ligne 4,puis 5 puis 6 , etc.
Vérifie donc si tu n'as pas des cochonneries qui trainent à la fin de ton tableau (genre : des espaces, un point, une lettre, un n'importe quoi qui fait qu'une plage non vide est détectée en fin de tableau)
A suivre !
I.
1 - tu n'est pas chiant, tu es persévérant. Nuance.
2 - tu fais au moins l'effort de chercher par toi-même et de proposer tes propres solutions, c'est très louable
3 - je ne comprends pas pourquoi ça t'écrit les données à la fin de ton tableau. Le code que tu proposes (même s'il est un peu lourd) écrit bien les données en ligne 4,puis 5 puis 6 , etc.
Vérifie donc si tu n'as pas des cochonneries qui trainent à la fin de ton tableau (genre : des espaces, un point, une lettre, un n'importe quoi qui fait qu'une plage non vide est détectée en fin de tableau)
A suivre !
I.
Salut Ivan-hoe
j'ai une nouvelle question sur mon UserForm
tous fonctionne bien mais j'aurai besoin d'ajouter un contrôle.
j'ai une instruction qui fonctionne et qui me permet de vérifier si les dates sont au format jj/mm/aaaa
si la date est incorrect la MsgBox apparait bien lorsque je clique sur la touche OK de mon userform. Elle se ferme et inscrit quand même le mauvais format de date dans la case prévue à cette effet!!
Comment faire pour que, si le format de date est incorrect et que l'on clique sur le bouton OK, la userform reste ouverte tant que la date n'a pas été modifier.
merci
j'ai une nouvelle question sur mon UserForm
tous fonctionne bien mais j'aurai besoin d'ajouter un contrôle.
j'ai une instruction qui fonctionne et qui me permet de vérifier si les dates sont au format jj/mm/aaaa
si la date est incorrect la MsgBox apparait bien lorsque je clique sur la touche OK de mon userform. Elle se ferme et inscrit quand même le mauvais format de date dans la case prévue à cette effet!!
Comment faire pour que, si le format de date est incorrect et que l'on clique sur le bouton OK, la userform reste ouverte tant que la date n'a pas été modifier.
merci
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
19 mars 2008 à 16:30
19 mars 2008 à 16:30
Salut Nus,
je suppose qu'il suffirait d'interrompre ta procédure (avec Exit Sub) après la boîte message qui indique l'erreur et avant l'instruction qui ferme ton userform.
exemple :
private sub BoutonOK_Click()
if [test sur ton format de dates] then
Msgbox "Erreur sur le format des dates"
Exit Sub
end if
Me.Hide
[suite de ta procédure]
Unload Me
end sub
Pour une réponse plus précise, pourrais-tu envoyer le code que tu utilises ?
I.
je suppose qu'il suffirait d'interrompre ta procédure (avec Exit Sub) après la boîte message qui indique l'erreur et avant l'instruction qui ferme ton userform.
exemple :
private sub BoutonOK_Click()
if [test sur ton format de dates] then
Msgbox "Erreur sur le format des dates"
Exit Sub
end if
Me.Hide
[suite de ta procédure]
Unload Me
end sub
Pour une réponse plus précise, pourrais-tu envoyer le code que tu utilises ?
I.
Salut Ivan-hoe,
j'ai mis eu peu de temps à répondre mais merci pour ton aide
j'ai encore une question !!
dans le même fichier, le nom des agents méthodes se trouve dans la colonne G, puis un pourcentage dans la colonne M.
Comment faire sous VBA pour que par exemple dans la colonne G si le nom de la personne est Mr X, la macro fasse la somme des % dans la colonne M (car chaque personne à plusieurs actions en cours) puis diviser cette somme par le nombre de valeurs de cette même personne. je ne sais pas si c'est très clair.
je pensais commencer comme ça, mais je ne suis pas très doué:
private sub .....
If Range("G65536") = "Mr X" Then
...
merci
j'ai mis eu peu de temps à répondre mais merci pour ton aide
j'ai encore une question !!
dans le même fichier, le nom des agents méthodes se trouve dans la colonne G, puis un pourcentage dans la colonne M.
Comment faire sous VBA pour que par exemple dans la colonne G si le nom de la personne est Mr X, la macro fasse la somme des % dans la colonne M (car chaque personne à plusieurs actions en cours) puis diviser cette somme par le nombre de valeurs de cette même personne. je ne sais pas si c'est très clair.
je pensais commencer comme ça, mais je ne suis pas très doué:
private sub .....
If Range("G65536") = "Mr X" Then
...
merci
Salut Ivan
oublions la question précédente !!
cette instruction me permet de copier les données d'une ligne dans un autre onglet lorsque le mot "Soldée" apparait dans une case de la colonne J.
Sub solder_actions()
Dim i As Integer
Dim konteur As Integer
Dim NBsold As Integer
NBsold = 4
'comptage des cellules dans l'onglet "soldées"
ActiveWorkbook.Worksheets("soldées ").Activate
For konteur = 4 To 4000
If Range(Cells(konteur, 1), Cells(konteur, 1)) <> "" Or Range(Cells(konteur, 2), Cells(konteur, 2)) <> "" Then
NBsold = NBsold + 1
End If
Next konteur
ActiveWorkbook.Worksheets("en_cours").Activate
For i = 4 To 1000
If Range(Cells(i, 10), Cells(i, 10)) = "Soldée" Then
Range(Cells(i, 1), Cells(i, 10)).Copy ActiveWorkbook.Worksheets("soldées ").Cells(NBsold, 1)
'suppression de la ligne
ActiveWorkbook.Worksheets("en_cours").Activate
Range(Cells(i, 1), Cells(i, 15)).Select
Selection.Delete Shift:=xlUp
NBsold = NBsold + 1
'on reste sur la même ligne
i = i - 1
Cells(i, 1).Activate
Else
End If
Next i
ActiveWorkbook.Worksheets("en_cours").Activate
End Sub
J'ai essayé plusieurs modification car en fait je souhaite copier les données de chaque ligne dans l'autre onglet sauf la donnée de la colonne K, car il s'agit d'un compte à rebours mais j'ai inscrit automatiquement la valeur 0 dans toute la colonne du second onglet (onglet où sont donc stocker des actions quand elles sont terminées : 100% inscrit dans la colonne M ou colonne 13 dans le code)
Merci
oublions la question précédente !!
cette instruction me permet de copier les données d'une ligne dans un autre onglet lorsque le mot "Soldée" apparait dans une case de la colonne J.
Sub solder_actions()
Dim i As Integer
Dim konteur As Integer
Dim NBsold As Integer
NBsold = 4
'comptage des cellules dans l'onglet "soldées"
ActiveWorkbook.Worksheets("soldées ").Activate
For konteur = 4 To 4000
If Range(Cells(konteur, 1), Cells(konteur, 1)) <> "" Or Range(Cells(konteur, 2), Cells(konteur, 2)) <> "" Then
NBsold = NBsold + 1
End If
Next konteur
ActiveWorkbook.Worksheets("en_cours").Activate
For i = 4 To 1000
If Range(Cells(i, 10), Cells(i, 10)) = "Soldée" Then
Range(Cells(i, 1), Cells(i, 10)).Copy ActiveWorkbook.Worksheets("soldées ").Cells(NBsold, 1)
'suppression de la ligne
ActiveWorkbook.Worksheets("en_cours").Activate
Range(Cells(i, 1), Cells(i, 15)).Select
Selection.Delete Shift:=xlUp
NBsold = NBsold + 1
'on reste sur la même ligne
i = i - 1
Cells(i, 1).Activate
Else
End If
Next i
ActiveWorkbook.Worksheets("en_cours").Activate
End Sub
J'ai essayé plusieurs modification car en fait je souhaite copier les données de chaque ligne dans l'autre onglet sauf la donnée de la colonne K, car il s'agit d'un compte à rebours mais j'ai inscrit automatiquement la valeur 0 dans toute la colonne du second onglet (onglet où sont donc stocker des actions quand elles sont terminées : 100% inscrit dans la colonne M ou colonne 13 dans le code)
Merci