VBA
Résolu/Fermé
eglantine217
Messages postés
54
Date d'inscription
mardi 8 mai 2012
Statut
Membre
Dernière intervention
3 mars 2013
-
Modifié par eglantine217 le 21/06/2012 à 10:19
eglantine217 Messages postés 54 Date d'inscription mardi 8 mai 2012 Statut Membre Dernière intervention 3 mars 2013 - 22 juin 2012 à 14:08
eglantine217 Messages postés 54 Date d'inscription mardi 8 mai 2012 Statut Membre Dernière intervention 3 mars 2013 - 22 juin 2012 à 14:08
7 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 750
21 juin 2012 à 09:47
21 juin 2012 à 09:47
Bonjour,
Peut être effectivement que votre colonne B n'est pas la plus "longue"...
Pour éviter cela, vous pouvez trouver la dernière ligne absolue non vide dans la feuille.
Attention toutefois, si des lignes sont supprimées dans la plage, enregistrez préalablement le fichier pour que la procédure renvoie la réelle dernière ligne
Code à utiliser :
Tout, tout, tout vous saurez tout sur ... la dernière ligne!
Peut être effectivement que votre colonne B n'est pas la plus "longue"...
Pour éviter cela, vous pouvez trouver la dernière ligne absolue non vide dans la feuille.
Attention toutefois, si des lignes sont supprimées dans la plage, enregistrez préalablement le fichier pour que la procédure renvoie la réelle dernière ligne
Code à utiliser :
Dim lifin As Long ActiveWorkBook.Save 'pour contourner le problème de suppression de ligne lifin = Range("A1").SpecialCells(xlCellTypeLastCell).Row
Tout, tout, tout vous saurez tout sur ... la dernière ligne!
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 750
21 juin 2012 à 10:36
21 juin 2012 à 10:36
Je n'ai pas compris :
c'est que ça ne copie pas tout d'un seul coup, je suis obligé de cliquer sur mon bouton vba pour que le copier coller se fasse jusqu'à la fin
Merci de bien détailler ce que vous souhaitez faire et le(s) problème(s) que vous rencontrez...
c'est que ça ne copie pas tout d'un seul coup, je suis obligé de cliquer sur mon bouton vba pour que le copier coller se fasse jusqu'à la fin
Merci de bien détailler ce que vous souhaitez faire et le(s) problème(s) que vous rencontrez...
eglantine217
Messages postés
54
Date d'inscription
mardi 8 mai 2012
Statut
Membre
Dernière intervention
3 mars 2013
21 juin 2012 à 13:07
21 juin 2012 à 13:07
j'aurai aimé que lorsque j'exécute le code que l'ensemble des colonnes B4 à D (jusqu'à la dernière ligne) soit copié dans mon nouvel onglet nommé test
eglantine217
Messages postés
54
Date d'inscription
mardi 8 mai 2012
Statut
Membre
Dernière intervention
3 mars 2013
21 juin 2012 à 13:14
21 juin 2012 à 13:14
en exécutant le code vba ça copie une ligne puis je dois re exécute et ça copie une ligne etc ... je ne trouve pas l'erreur car moi je veux que le copier coller soit direct
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 750
21 juin 2012 à 13:11
21 juin 2012 à 13:11
le code communiqué ci dessus doit faire ce que tu souhaites.
C'est dans l'exécution que cela pose souci.
Qu'entends tu par : je suis obligé de cliquer sur mon bouton vba
C'est dans l'exécution que cela pose souci.
Qu'entends tu par : je suis obligé de cliquer sur mon bouton vba
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 750
21 juin 2012 à 13:20
21 juin 2012 à 13:20
Peux tu nous transférer ton fichier sans données confidentielles?
Pour cela utilises https://www.cjoint.com/ et reviebns ici coller le lien fournit dans une réponse...
Pour cela utilises https://www.cjoint.com/ et reviebns ici coller le lien fournit dans une réponse...
eglantine217
Messages postés
54
Date d'inscription
mardi 8 mai 2012
Statut
Membre
Dernière intervention
3 mars 2013
21 juin 2012 à 14:24
21 juin 2012 à 14:24
maintenant ça marche ... je ne sais pas comment mon problème s'est résolu mais j'ai un autre bug je veux que le copier coller s'effectue uniquement lorsque dans la colonne E la valeur = "X"
Sub copiercoller() Const NomFO = "Feuil1" Const NomFD = "test" Const CellD = "B5" Dim lifin As Long ActiveWorkbook.Save For i = 1 To 84 lifin = Range("A1").SpecialCells(xlCellTypeLastCell).Row If Sheets(NomFO).Range("E" & i, "E" & i) = "X" Then Sheets(NomFO).Range("B4:D" & lifin).Copy Sheets(NomFD).Range(CellD) ElseIf Sheets(NomFO).Range("E" & i) <> "X" Then End If Next i End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 750
21 juin 2012 à 14:57
21 juin 2012 à 14:57
Donc, une fois ton problème de "tout copier" résolu, tu nous demandes de résoudre un souci de copier/coller ligne par ligne......................................
Essaye ceci :
Essaye ceci :
Sub copiercoller() Const NomFO = "Feuil1" Const NomFD = "test" Dim lifin As Long, i As Long, j As Long j = 5 'pour commencer à la cellule B5 ActiveWorkbook.Save lifin = Range("A1").SpecialCells(xlCellTypeLastCell).Row For i = 1 To lifin If UCase(Sheets(NomFO).Range("E" & i)) = "X" Then Sheets(NomFO).Range("B" & i & ":D" & i).Copy Sheets(NomFD).Range("B" & j) j = j + 1 ElseIf Sheets(NomFO).Range("E" & i) <> "X" Then 'ben ici je ne fais rien. Ok? End If Next i End Sub
eglantine217
Messages postés
54
Date d'inscription
mardi 8 mai 2012
Statut
Membre
Dernière intervention
3 mars 2013
22 juin 2012 à 09:24
22 juin 2012 à 09:24
Mon code ne tient pas compte de la valeur de la colonne E
Si dans la colonne E on a "X" alors ça doit être copier vers mon fichier test
le problème c'est que ça copie et ça colle tout sans prendre en compte la valeur de cette colonne E
je nage un peu en eau trouble je ne trouve pas mon erreur
Si dans la colonne E on a "X" alors ça doit être copier vers mon fichier test
le problème c'est que ça copie et ça colle tout sans prendre en compte la valeur de cette colonne E
Sub transfert() Const NomFO = "Feuil1" Const NomFD = "test" Const CellD = "B5" Dim lifin As Long ActiveWorkbook.Save For i = 1 To 84 lifin = Range("A1").SpecialCells(xlCellTypeLastCell).Row If Sheets(NomFO).Range("E" & i, "E" & i) = "X" Then Sheets(NomFO).Range("B4:E" & lifin).Copy Sheets(NomFD).Range(CellD) ElseIf Sheets(NomFO).Range("E" & i) <> "X" Then End If Next i End Sub
je nage un peu en eau trouble je ne trouve pas mon erreur
eglantine217
Messages postés
54
Date d'inscription
mardi 8 mai 2012
Statut
Membre
Dernière intervention
3 mars 2013
22 juin 2012 à 09:29
22 juin 2012 à 09:29
j'ai essayé avec votre code mais rien ne se passe
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 750
22 juin 2012 à 13:44
22 juin 2012 à 13:44
dernière tentative, après il FAUDRA le fichier...
Sub copiercoller() Dim lifin As Long, i As Long, j As Long j = 5 'pour commencer à la cellule B5 ActiveWorkbook.Save lifin = Sheets("Feuil1").Range("A1").SpecialCells(xlCellTypeLastCell).Row For i = 1 To lifin If Sheets("Feuil1").Range("E" & i).Value = "X" Then Sheets("Feuil1").Range("B" & i & ":D" & i).Copy Sheets("test").Range("B" & j) j = j + 1 End If Next i End Sub
eglantine217
Messages postés
54
Date d'inscription
mardi 8 mai 2012
Statut
Membre
Dernière intervention
3 mars 2013
22 juin 2012 à 14:08
22 juin 2012 à 14:08
c'est ça ça marche !!!! mille merci !!!!! merci merci merci !!!!!
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 750
22 juin 2012 à 10:01
22 juin 2012 à 10:01
Bonjour,
j'ai essayé avec votre code mais rien ne se passe
Dans mon code, la ligne de test est :
Traduit en "pseudo français" :
Si la mise en majuscule de la cellule E ligne i est égale à X majuscule alors...
S'il ne se passe rien, peut être que la cellule E ligne i n'est pas égale à "X"....
Envoie moi un exemple de ton fichier sans données confidentielles, en passant par cjoint.com
j'ai essayé avec votre code mais rien ne se passe
Dans mon code, la ligne de test est :
If UCase(Sheets(NomFO).Range("E" & i)) = "X" Then
Traduit en "pseudo français" :
Si la mise en majuscule de la cellule E ligne i est égale à X majuscule alors...
S'il ne se passe rien, peut être que la cellule E ligne i n'est pas égale à "X"....
Envoie moi un exemple de ton fichier sans données confidentielles, en passant par cjoint.com
eglantine217
Messages postés
54
Date d'inscription
mardi 8 mai 2012
Statut
Membre
Dernière intervention
3 mars 2013
22 juin 2012 à 13:34
22 juin 2012 à 13:34
si la valeur dans la colonne E est égal à "X" (X étant un exemple ; j'aurai pu mettre si la valeur dans la colonne E est égal à "toto" alors le copie coller vers la feuille test s'effectue sinon on passe à la ligne suivante)
21 juin 2012 à 10:20
Que faire