J'ai un léger problème avec du VBA que j'ai concu. Ce n'Est pas le
plus code VBA, mais c'est le seul moyen que j'ai trouvé pour y
arriver.
Sub enregistrer()
'Copie des valeurs de la feuille Temp
With Worksheets("Temp")
.Activate
.UsedRange.Copy
End With
'Recoit les valeurs de la feuille Temp
'Copie les valeurs après réception
With Worksheets("Temp2")
.Activate
.Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=False
.Range("A1").Select
.UsedRange.Copy
End With
'Activation du fichier de l'utilisateur
Worksheets("BD").Activate
'Copie des données sur la feuille BD
ActiveSheet.Paste
Destination:=Worksheets("BD").Range("A1").End(xlDown).Offset(1, 0)
'Vider le presse-papier
Application.CutCopyMode = False
Le problème, c'est que lors de ma 2ème copie sur la feuille Temp2
après le coller, il copie aussi les case vide, je voudrais qu'il ne
les sélectionne pas.
Je fais 2 copie pcq la première ne copiait pas seulement les valeur
mais aussi les =SI(...) donc j'avais des choses en trop de copier et
inutile sur la feuille BD.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
AV
Si je comprends l'histoire des cellules vides...: Il peut y avoir 2 problèmes avec l'utilisation de UsedRange.Copy : * inclusion des cellules affichant vides mais contenant une formule style =si(A1="";"") Ca c'est logique : les cellules ne sont pas vides * inclusion des cellules vides dans la mesure où, à un quelconque moment, elles ont été formatées ! Ca c'est bcp moins normal et c'est Le problème de UsedRange
Pour contourner (et à tester), ton code pourrait être :
Sub zzz() Sheets("Temp").UsedRange.SpecialCells(xlCellTypeConstants, 23).Copy Sheets("BD").Range("A1").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlValues Application.CutCopyMode = False End Sub
AV
Si je comprends l'histoire des cellules vides...:
Il peut y avoir 2 problèmes avec l'utilisation de UsedRange.Copy :
* inclusion des cellules affichant vides mais contenant une formule style
=si(A1="";"")
Ca c'est logique : les cellules ne sont pas vides
* inclusion des cellules vides dans la mesure où, à un quelconque moment, elles
ont été formatées !
Ca c'est bcp moins normal et c'est Le problème de UsedRange
Pour contourner (et à tester), ton code pourrait être :
Sub zzz()
Sheets("Temp").UsedRange.SpecialCells(xlCellTypeConstants, 23).Copy
Sheets("BD").Range("A1").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
End Sub
Si je comprends l'histoire des cellules vides...: Il peut y avoir 2 problèmes avec l'utilisation de UsedRange.Copy : * inclusion des cellules affichant vides mais contenant une formule style =si(A1="";"") Ca c'est logique : les cellules ne sont pas vides * inclusion des cellules vides dans la mesure où, à un quelconque moment, elles ont été formatées ! Ca c'est bcp moins normal et c'est Le problème de UsedRange
Pour contourner (et à tester), ton code pourrait être :
Sub zzz() Sheets("Temp").UsedRange.SpecialCells(xlCellTypeConstants, 23).Copy Sheets("BD").Range("A1").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlValues Application.CutCopyMode = False End Sub
AV
marcpolie
Bonjour AV,
J'ai fait ce que tu m'as dis
'Copie des valeurs de la feuille Temp With Worksheets("Temp") .Activate .UsedRange.SpecialCells(xlCellTypeConstants, 23).Copy End With
'Activation du fichier de l'utilisateur Worksheets("BD").Activate
'Copie des données sur la feuille BD Sheets("BD").Range("A1").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlValues
'Vider le presse-papier Application.CutCopyMode = False
End Sub
Voici le code que j'ai mis à la place de l'ancien. Le seul problème, il copie que la première ligne celle avec des fonctionne il ne copie pas.
es-ce que cela pourrait être le type de SpecialCells qui foire ???? j'ai essayé xlCellTypeAllFormatConditions mais ça me plante dans le visage.
Merci encore pour ton aide.
"AV" wrote in message news:...
Si je comprends l'histoire des cellules vides...: Il peut y avoir 2 problèmes avec l'utilisation de UsedRange.Copy : * inclusion des cellules affichant vides mais contenant une formule style =si(A1="";"") Ca c'est logique : les cellules ne sont pas vides * inclusion des cellules vides dans la mesure où, à un quelconque moment, elles ont été formatées ! Ca c'est bcp moins normal et c'est Le problème de UsedRange
Pour contourner (et à tester), ton code pourrait être :
Sub zzz() Sheets("Temp").UsedRange.SpecialCells(xlCellTypeConstants, 23).Copy Sheets("BD").Range("A1").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlValues Application.CutCopyMode = False End Sub
AV
Bonjour AV,
J'ai fait ce que tu m'as dis
'Copie des valeurs de la feuille Temp
With Worksheets("Temp")
.Activate
.UsedRange.SpecialCells(xlCellTypeConstants, 23).Copy
End With
'Activation du fichier de l'utilisateur
Worksheets("BD").Activate
'Copie des données sur la feuille BD
Sheets("BD").Range("A1").End(xlDown).Offset(1, 0).PasteSpecial
Paste:=xlValues
'Vider le presse-papier
Application.CutCopyMode = False
End Sub
Voici le code que j'ai mis à la place de l'ancien. Le seul problème,
il copie que la première ligne celle avec des fonctionne il ne copie
pas.
es-ce que cela pourrait être le type de SpecialCells qui foire ????
j'ai essayé xlCellTypeAllFormatConditions mais ça me plante dans le
visage.
Merci encore pour ton aide.
"AV" <alain.vallon@wanadoo.fr> wrote in message news:<Ows2j2UYDHA.2620@TK2MSFTNGP09.phx.gbl>...
Si je comprends l'histoire des cellules vides...:
Il peut y avoir 2 problèmes avec l'utilisation de UsedRange.Copy :
* inclusion des cellules affichant vides mais contenant une formule style
=si(A1="";"")
Ca c'est logique : les cellules ne sont pas vides
* inclusion des cellules vides dans la mesure où, à un quelconque moment, elles
ont été formatées !
Ca c'est bcp moins normal et c'est Le problème de UsedRange
Pour contourner (et à tester), ton code pourrait être :
Sub zzz()
Sheets("Temp").UsedRange.SpecialCells(xlCellTypeConstants, 23).Copy
Sheets("BD").Range("A1").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
End Sub
'Copie des valeurs de la feuille Temp With Worksheets("Temp") .Activate .UsedRange.SpecialCells(xlCellTypeConstants, 23).Copy End With
'Activation du fichier de l'utilisateur Worksheets("BD").Activate
'Copie des données sur la feuille BD Sheets("BD").Range("A1").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlValues
'Vider le presse-papier Application.CutCopyMode = False
End Sub
Voici le code que j'ai mis à la place de l'ancien. Le seul problème, il copie que la première ligne celle avec des fonctionne il ne copie pas.
es-ce que cela pourrait être le type de SpecialCells qui foire ???? j'ai essayé xlCellTypeAllFormatConditions mais ça me plante dans le visage.
Merci encore pour ton aide.
"AV" wrote in message news:...
Si je comprends l'histoire des cellules vides...: Il peut y avoir 2 problèmes avec l'utilisation de UsedRange.Copy : * inclusion des cellules affichant vides mais contenant une formule style =si(A1="";"") Ca c'est logique : les cellules ne sont pas vides * inclusion des cellules vides dans la mesure où, à un quelconque moment, elles ont été formatées ! Ca c'est bcp moins normal et c'est Le problème de UsedRange
Pour contourner (et à tester), ton code pourrait être :
Sub zzz() Sheets("Temp").UsedRange.SpecialCells(xlCellTypeConstants, 23).Copy Sheets("BD").Range("A1").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlValues Application.CutCopyMode = False End Sub
AV
marcpolie
il copie que les cellue ou il n'y a pas de fonctions
la première ligne avait aucune fonction donc depuis que je l'ai enlevé ça ne fonctionne plus.
merci de bien vouloir continuer de m'aider
il copie que les cellue ou il n'y a pas de fonctions
la première ligne avait aucune fonction donc depuis que je l'ai enlevé
ça ne fonctionne plus.