VBA 1 enr entête de long variable / n feuil
nadine258
Messages postés
8
Statut
Membre
-
ccm81 Messages postés 11033 Statut Membre -
ccm81 Messages postés 11033 Statut Membre -
Bonjour,
Je traite plusieurs onglets qui ont un nombre de colonne différent. Mon soucis et de compter le nombre de col à chaque changement d'onglet pour ensuite contrôler l'enregistrement entête (nom des colonne). Le nom des colonnes et stocké sur un onglet de référence ou j'ai pour chaque onglet la description des colonnes et en grisé les colonnes que je ne dois pas traiter.
Mon soucis et de charger mon indice de tableau sur le nombre de colonnes que j'aurais sur mon onglet (pour le reste c'est bon).
Voyez que mon Selection.Cells.Count ne me retourne pas le nombre de colonne dans nCells.
For c = 1 To UBound(TabloC)
'Si DDL trouvée alors on traite
If WsC.Cells(c, 1) = Ntable Then
Cs = True
WsC.Activate
nCells = Selection.Cells.Count
Exit For
End If
Next c
Merci pour votre aide
Je traite plusieurs onglets qui ont un nombre de colonne différent. Mon soucis et de compter le nombre de col à chaque changement d'onglet pour ensuite contrôler l'enregistrement entête (nom des colonne). Le nom des colonnes et stocké sur un onglet de référence ou j'ai pour chaque onglet la description des colonnes et en grisé les colonnes que je ne dois pas traiter.
Mon soucis et de charger mon indice de tableau sur le nombre de colonnes que j'aurais sur mon onglet (pour le reste c'est bon).
Voyez que mon Selection.Cells.Count ne me retourne pas le nombre de colonne dans nCells.
For c = 1 To UBound(TabloC)
'Si DDL trouvée alors on traite
If WsC.Cells(c, 1) = Ntable Then
Cs = True
WsC.Activate
nCells = Selection.Cells.Count
Exit For
End If
Next c
Merci pour votre aide
A voir également:
- VBA 1 enr entête de long variable / n feuil
- Incompatibilité de type vba ✓ - Forum Programmation
- Ordinateur long à démarrer - Guide
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
5 réponses
Bonjour à tous,
Pour le nombre de colonnes :
Selection.columns.Count
et pour le nombre de colonnes de Feuil1, si la ligne est remplie jusqu'au bout :
nbcol = Worksheets("Feuil1").Cells(1, Columns.Count).End(xlToLeft).Column
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
Pour le nombre de colonnes :
Selection.columns.Count
et pour le nombre de colonnes de Feuil1, si la ligne est remplie jusqu'au bout :
nbcol = Worksheets("Feuil1").Cells(1, Columns.Count).End(xlToLeft).Column
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
bonjour à tous
ou pour la dernière colonne utilisée dans la feuille (récupéré sur le forum)
DerCol = sheets(num_sheet).Cells.Find("*", , , , xlByColumns, xlPrevious).Column
bonne suite
ou pour la dernière colonne utilisée dans la feuille (récupéré sur le forum)
DerCol = sheets(num_sheet).Cells.Find("*", , , , xlByColumns, xlPrevious).Column
bonne suite
Merci je vais pouvoir finir mon instruction.
Atout hasard si vous savez comment paramétrer la copie de 2 feuilles dans une même destinataire. Ma première feuille à un nombre de colonne variable j'utilise donc une variante pour décaler sur la droite mais il me demande un L1C1 ???
g_xlsfeuilleSource2.Activate
Cells.Select
Selection.Copy
'partie a revoir
g_xlsfeuilleDest.Activate
nbrColSourceN = nbrColSourceN + 1
Range("A1").Select
' ActiveCell.Offset(, columnOffset:=nbrColSourceN).Activate
ActiveSheet.Paste
Application.CutCopyMode = False
Bonne semaine.
Atout hasard si vous savez comment paramétrer la copie de 2 feuilles dans une même destinataire. Ma première feuille à un nombre de colonne variable j'utilise donc une variante pour décaler sur la droite mais il me demande un L1C1 ???
g_xlsfeuilleSource2.Activate
Cells.Select
Selection.Copy
'partie a revoir
g_xlsfeuilleDest.Activate
nbrColSourceN = nbrColSourceN + 1
Range("A1").Select
' ActiveCell.Offset(, columnOffset:=nbrColSourceN).Activate
ActiveSheet.Paste
Application.CutCopyMode = False
Bonne semaine.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour
si j'ai compris ta demande
RQ. si lors de la 1° copie, la feuille 2 n'est pas vide, on peut faire plus simple (supprimer les test)
bonne suite
si j'ai compris ta demande
Public Sub CopieApresDerniereColonne()
Dim lifin1 As Long, cofin1 As Long, plage As Range
Dim cofin2 As Long, c As Object
' coordonnées de la plage feuille 1 à copier
lifin1 = Sheets(1).Cells.Find("*", , , , xlByRows, xlPrevious).Row
cofin1 = Sheets(1).Cells.Find("*", , , , xlByColumns, xlPrevious).Column
' première colonne vide feuille 2
' un peu compliqué pour la 1° copie sur feuille 2 (encore) vide
With Sheets(2).Cells
Set c = .Find("*", , , , xlByColumns, xlPrevious)
End With
If c Is Nothing Then
cofin2 = 1
Else
cofin2 = c.Column + 1
End If
' copie de la plage sur feuille 2 après la dernière colonne utilisée
Set plage = Range(Sheets(1).Cells(1, 1), Sheets(1).Cells(lifin1, cofin1))
plage.Copy Sheets(2).Cells(1, cofin2)
End Sub
RQ. si lors de la 1° copie, la feuille 2 n'est pas vide, on peut faire plus simple (supprimer les test)
bonne suite